BeautifulSoup으로 크롤링

라이브러리 설치하기

BeautifulSoup 를 사용하기 위해 필요한 라이브러리인 'requests' 와 'beautifulsoup'를 설치한다.

pip install requests
pip install beautifulsoup4

Requests

'requests' 는 HTTP 요청을 보내는데 사용하는 라이브러리이다. 아래의 간단한 예제를 작성해보자.

import requests

url = '<http://paullab.co.kr>'
response = requests.get(url)
print(response.headers)           # 헤더의 내용 확인 (.headers)
print(response.encoding).         # 인코딩 방식 확인 (.encoding)
print(response.status_code).      # 상태코드 확인 (.status_code)
print(response.ok)                # 정상적 접속 확인 (.ok)
response.encoding = 'utf-8'
print(response.text)              # html 내용 확인 (.text)

'requests' 를 이용하여 'http://paullab.co.kr' 에 요청을 보내고 그 결과들을 확인할 수 있다. 이 때, 인코딩 방식을 'utf-8' 로 해주어야 한글이 정상적으로 출력되는 것을 볼 수 있다.

Requests 활용 (1)

특정 페이지의 소스코드를 파일로 저장하는 코드이다.

import requests

paullab_url = '<http://paullab.co.kr>'
response = requests.get(paullab_url)
response.encoding = 'utf-8'
html = response.text

f = open('test.html', 'w')
f.write(html)
f.close()

Requests 활용 (2)

특정 페이지에서 특정 단어가 몇 번 언급되었는지 출력하는 코드이다.

import requests

paullab_url = '<http://paullab.co.kr>'
response = requests.get(paullab_url)
response.encoding = 'utf-8'
html = response.text

spliteHTML = html.split(' ')
word = input("검색할 단어를 입력하세요 : ")
print(spliteHTML.count(word))

BeautifulSoup

str 타입의 html 데이터를 html 구조를 가진 데이터로 가공해주는 라이브러리이다.