도구들/R,파이썬

[파이썬] 웹 크롤링 시작하기 2. BeautifulSoup로 html 다루기

cactus 2022. 3. 26. 17:42

 

파이썬 requests 모듈로 웹사이트에 요청을 보내는 방법에 대해 정리한 것에 이어서

웹사이트 내의 정보들을 수집하기 위해서 해당 사이트의 html을 다루는 툴로 BeautifulSoup 모듈을 소개한다.

https://ryuhyun.tistory.com/56

 

[파이썬] requests 모듈로 웹 스크래핑 시작하기 (requests.get()으로 요청 보내기)

requests 모듈은 파이썬 웹 스크래핑에서 활용되는 모듈로, http에 응답을 요청해서 받을 수 있다. requests 모듈이 설치되어있는지 확인하고 설치를 진행하기 위해 아래와 같이 설치 명령어 pip install

ryuhyun.tistory.com

 

 

requests 모듈로 해당 사이트로부터 정보를 수집가능한 것을 확인하고,

사이트의 html을 본격적으로 수집한다.

 

질병관리청 보도자료 게시물의 정보를 수집하려고 한다.

크롬 브라우저에서 F12 키를 누르면 페이지 소스를 바로 확인할 수 있다.

또는 우측 상단의 점 세개(맞춤설정 및 제어) 아이콘을 누르고 '도구 더보기' - '개발자' 메뉴를 눌러도 된다.

 

이제 수집하고자 하는 정보가 포함된 태그를 찾아야 한다.

우측의 소스 창에서 태그를 하나씩 눌러 가며 링크 주소가 선택되는 태그를 찾는다. 

 

선택된 태그별로 본문 페이지에 어떤 내용을 구성하는 태그인지 알 수 있다

 

이 페이지의 경우 <div class="tb_contents"> 태그 이하에 본문 내용이 삽입되어 있는 것을 확인했다.

본 페이지의 html 소스를 파이썬으로 가져와서 정보들을 텍스트로 추출해낼 것이다.

 

내용을 수집하기 위한 requests 모듈을 불러오고

html을 텍스트 형태로 가져오기 위해 BeautifulSoup라는 모듈을 사용한다.

html을 수프처럼 텍스트로 녹인다는 의미일까 ㅎㅎ

 

사이트 주소는 기니까 url 이라는 변수에다 별도로 저장해준다.

"" 따옴표 안에 텍스트 형태로 저장해야 한다.

url="https://www.kdca.go.kr/board/board.es?mid=a20501020000&bid=0015&list_no=719112&cg_code=C01&act=view&nPage=1"

requests 모듈을 불러오고, requests.get으로 url 응답 확인한다.

import requests
requests.get(url)

url 본문 내용을 확인해보는 방법은

불러온 url 을 변수에 저장하고, .text 를 통해 본문을 텍스트로 확인할 수 있다.

여기서는 req 이라는 변수에 저장하고, req.text로 확인해 보았다.

req=requests.get(url)
req.text

이제부터 BeautifulSoup로 불러온 본문 내용을 다루는 작업이다.

BeautifulSoup4가 설치되지 않았다면 설치 진행해주고 해당 모듈을 불러온다.

pip install BeautifulSoup4
from bs4 import BeautifulSoup

.content는 .text보다 더 raw 한 데이터로, 바이트 형태로 표현된다. 

이해할 수 없는 형태이므로 굳이 확인 안해도 되고, 바로 html 파싱*을 진행한다.

*파싱parsing 이란, 마찬가지로 html을 수집 분석 가능한 형태로 텍스트화 하는 것을 의미한다.

여기서는 beautifulslup 의 html.parser를 활용한다.

BeautifulSoup(req.content, 'html.parser')

 

위와 같이 파이썬의 beautifulsoup 모듈을 통해

분석하고자 하는 페이지의 html이 텍스트 형태로 표현되는 것을 확인할 수 있다.

 

반응형