BeautifulSoup4 - 웹 크롤링 팁

less than 1 minute read

Game Dots 프로젝트에서 사용한 BeautifulSoup4 웹크롤링 팁 정리입니다.

install

pip install beautifulsoup4

import

import requests
from bs4 import BeautifulSoup

기본 url parsing

headers 설정이 없으면 ‘403’ error가 발생하니 사용할 브라우저의 값을 설정해준다.

base_url = 'https://www.metacritic.com/search/game/'
target_url = base_url + title + '/results'
print(target_url)

headers = {'User-Agent':'Chrome/66.0.3359.181'}
html = requests.get(target_url, headers=headers)
soup= BeautifulSoup(html.text, 'html.parser')

이제 이 soup으로 원하는 작업을 하면 된다.

find / find_all

# 찾기
search_result.find("div", {"class": "main_stats"})

# 모두 찾기
search_results = soup.find_all("div", {"class": "result_wrap"})

stripped_strings

이 method는 정말 파워풀 하다!! 눈에 보이는 text만 가져오고 싶을 때, 간단하게 전체를 아우르는 태그를 가져와서 .stripped_strings 해주면 된다.

info = list(search_result.find("div", {"class": "main_stats"}).stripped_strings)

# string을 가져온 뒤 원하는 부분을 따로 가져왔음
metascore = info[0]
title = info[1]
platform = info[2]
year = info[3].split(',')[1].strip()