웹 크롤링할 때 Requests를 사용해서 크롤링을 할 수 있음
하지만 Requests는 Html만 가져오고 자바스크립트 같은 걸 사용해 동적으로 보여주는 데이터는 처리를 못함
Selenium은 사람이 사용하는 웹브라우져를 이용함
Requests가 더 가벼움..
Selenium 설치
pip install selenium
사용할 브라우저별 드라이버 설치
- Firefox : https://github.com/mozilla/geckodriver/releases
- Chrome : https://sites.google.com/a/chromium.org/chromedriver/downloads
- Edge : https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
사용할 브라우저에 맞게 다운받고 프로젝트 폴더에 넣어줌
사용법
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