크롤링

파이썬을 사용한 웹 크롤링 기초: Requests, BeautifulSoup, Selenium

eadgnus 2023. 6. 11. 19:25
728x90
반응형
SMALL

웹 크롤링(web crawling)이란 웹 페이지에서 원하는 데이터를 추출하는 기술을 말합니다. 파이썬은 크롤링에 필요한 라이브러리가 다양하게 존재하기 때문에 웹 크롤링을 쉽게 수행할 수 있습니다. 이번 포스트에서는 간단한 웹 크롤링을 위한 대표적인 파이썬 라이브러리로서 Requests, BeautifulSoup, 그리고 Selenium에 대해 알아봅니다.

  1. Requests

Requests는 HTTP 요청을 수행하고 응답을 가져오는 작업을 쉽게 처리할 수 있는 파이썬 라이브러리입니다.

설치 방법:

 
pip install requests

Requests 사용 예제:

python
import requests

url = 'https://www.example.com'
response = requests.get(url)
print(response.text)
  1. BeautifulSoup

BeautifulSoup은 HTML, XML 문서에서 원하는 데이터를 손쉽게 추출하기 위한 파이썬 라이브러리입니다. 주로 크롤링을 위해 Requests와 함께 사용됩니다.

설치 방법:

 
pip install beautifulsoup4

BeautifulSoup 사용 예제:

python
import requests
from bs4 import BeautifulSoup

url = 'https://www.example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

# 웹페이지에서 원하는 태그를 찾아 데이터 추출
h1_tag = soup.find('h1')
print(h1_tag.text)
  1. Selenium

Selenium은 웹드라이버를 사용하여 웹 페이지를 로드하며 자바스크립트로 렌더링된 동적 페이지에서도 데이터를 크롤링할 수 있는 라이브러리입니다.

설치 방법:

 
pip install selenium

Selenium 사용 예제:

python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

url = 'https://www.example.com'
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
driver.get(url)

# 웹페이지에서 원하는 요소를 찾아 데이터 추출
search_box = driver.find_element_by_name('input-name') # name 속성으로 input 찾기
search_box.send_keys('검색어')  # 텍스트 입력
search_box.send_keys(Keys.RETURN)  # 엔터 키 누르기

# 크롤링 이후 웹드라이버 종료
driver.quit()

결론: 웹 크롤링 워크플로우는 대부분 특정 URL에 요청을 보내고 응답을 받는 과정(Requests), 그리고 HTML, XML에서 원하는 데이터를 추출하는 과정(BeautifulSoup)으로 구성됩니다. 자바스크립트를 사용한 동적 페이지의 경우에는, 웹 페이지의 상호작용을 통해 데이터가 로드되기 때문에 웹드라이버를 이용한 크롤링이 필요한데, 이 때 Selenium을 사용합니다. 이를 통해 원하는 데이터를 쉽게 가져올 수 있으며, 필요에 따라 다양한 분야에 활용할 수 있습니다.

728x90
반응형
LIST