[python] Requests-HTML와 Selenium을 함께 사용하는 방법
요즘 웹 크롤링 작업을 수행할 때 Requests-HTML와 Selenium이 인기를 얻고 있습니다. Requests-HTML은 간편한 HTTP 요청을 처리하는 라이브러리이고, Selenium은 브라우저 제어를 통해 웹 페이지와 상호작용할 수 있는 도구입니다. 이 두 가지를 함께 사용하면 웹 크롤링을 훨씬 더 유연하고 강력하게 할 수 있습니다.
필요한 라이브러리 설치하기
먼저, Requests-HTML와 Selenium을 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.
pip install requests-html selenium
Requests-HTML로 웹 페이지 가져오기
Requests-HTML를 사용하여 원하는 웹 페이지를 가져와서 정보를 추출할 수 있습니다. 다음은 Requests-HTML로 웹 페이지를 가져오는 간단한 예제입니다.
from requests_html import HTMLSession
session = HTMLSession()
response = session.get('https://www.example.com')
# 웹 페이지의 HTML 내용 가져오기
html = response.html.html
# 웹 페이지의 제목 가져오기
title = response.html.find('title', first=True).text
print(html)
print(title)
Selenium으로 웹 페이지 상호작용하기
Selenium을 사용하면 웹 페이지와 직접 상호작용할 수 있습니다. 예를 들어, 로그인 폼을 작성하거나 클릭 이벤트를 발생시킬 수 있습니다. 다음은 Selenium을 사용하여 웹 페이지에 접속하고 버튼을 클릭하는 예제입니다.
from selenium import webdriver
# 브라우저 옵션 설정 (예: Chrome)
options = webdriver.ChromeOptions()
options.add_argument("--headless") # 브라우저 창을 표시하지 않음
# Selenium WebDriver 생성
driver = webdriver.Chrome(options=options)
# 웹 페이지 접속
driver.get('https://www.example.com')
# 버튼 클릭
button = driver.find_element_by_id('button_id')
button.click()
# 결과 확인
print(driver.page_source)
# WebDriver 종료
driver.quit()
Requests-HTML와 Selenium 함께 사용하기
이제 Requests-HTML로 웹 페이지를 가져온 후, Selenium을 사용하여 그 페이지와 상호작용할 수 있습니다. 다음은 두 라이브러리를 함께 사용하는 예제입니다.
from requests_html import HTMLSession
from selenium import webdriver
# Requests-HTML로 웹 페이지 가져오기
session = HTMLSession()
response = session.get('https://www.example.com')
# Selenium으로 웹 페이지 상호작용하기
options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
driver.get(response.url)
# 웹 페이지의 제목 가져오기
title = driver.title
# 로그인 폼 작성
username_input = driver.find_element_by_id('username')
password_input = driver.find_element_by_id('password')
username_input.send_keys('my_username')
password_input.send_keys('my_password')
# 로그인 버튼 클릭
login_button = driver.find_element_by_id('login_button')
login_button.click()
# 결과 확인
print(driver.page_source)
# WebDriver 종료
driver.quit()
이제 Requests-HTML와 Selenium을 함께 사용하여 웹 페이지를 가져오고 상호작용할 수 있는 방법을 알았습니다. 이를 통해 더 복잡한 크롤링 작업을 수행할 수 있습니다. 자세한 내용은 Requests-HTML와 Selenium의 공식 문서를 참조하시기 바랍니다.