본문 바로가기

개발/Python

Python Selenium으로 웹 크롤링

 

웹 크롤링할 때 Requests를 사용해서 크롤링을 할 수 있음

 

하지만 Requests는 Html만 가져오고 자바스크립트 같은 걸 사용해 동적으로 보여주는 데이터는 처리를 못함

 

Selenium은 사람이 사용하는 웹브라우져를 이용함

 

Requests가 더 가벼움..

 

 

 

Selenium 설치

pip install selenium

 

사용할 브라우저별 드라이버 설치

사용할 브라우저에 맞게 다운받고 프로젝트 폴더에 넣어줌

 

 

사용법

from selenium import webdriver

browser = webdriver.Chrome()
browser.get("https://www.naver.com/")

이러면 크롬이 실행되면서 네이버가 열림

 

 

페이지 내에 특정 요소 가져오기

 

 

F12를 눌러 원하는 요소를 찾음

우클릭하여 Copy -> XPath를 복사 (XPath나 full XPath)

XPath : //*[@id="themecast"]/div[1]/div[1]/div[1]/strong

full XPath : /html/body/div[2]/div[3]/div[2]/div[3]/div/div[1]/div[1]/div[1]/strong

full XPath는 절대 주소

 

from selenium import webdriver

browser = webdriver.Chrome()
browser.get("https://www.naver.com/")

xPath = browser.find_element_by_xpath('//*[@id="themecast"]/div[1]/div[1]/div[1]/strong')
fullXPath = browser.find_element_by_xpath(' /html/body/div[2]/div[3]/div[2]/div[3]/div/div[1]/div[1]/div[1]/strong')

print(xPath.text)
print(fullXPath.text)

browser.quit()

 

결과

 

참고

https://selenium-python.readthedocs.io/index.html