크롤링계의 2개의 양대 산맥이 있는데
selenium과 beautifulsoup(bs4)이다.
둘의 가장 큰 차이는 selenium은 사람이 동작하는 방식과 유사하게 동작하고, bs4는 소스 자체로 접근하게 된다.
오늘은 selenium으로 다양한 옵션을 이야기해보고자 한다.
라이브러리 다운
pip3 install selenium
크롬 웹드라이버(Chrome webdriver) 다운
현재 사용중인 크롬 버전과 chrome driver의 버전이 일치해야한다.
https://developer.chrome.com/docs/chromedriver/downloads?hl=ko
다운로드 | ChromeDriver | Chrome for Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. 다운로드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 달리 명시되지 않는 한 이 페이지의 콘텐츠
developer.chrome.com
크롬 브라우저의 버전은 우측 상단 프로필 옆 점3 > 설정으로 설정화면으로 들어간다.
그리고 다시 사이드바에서 설정 > chrome 버전을 클릭한다.
코딩 작업
임포트 해줄 것은 webdriver가 있다.
그리고 url 정보와 get 요청으로 url에 접속할 수 있다.
from selenium import webdriver
# 사용할 url 기입
url =
# webdriver 실행(크롬 창 생성)
driver = webdriver.Chrome("드라이버 설치 경로/chromedriver.exe")
driver.get(url) # url로 접속
option
다양한 옵션을 통해 크롬 동작을 조절할 수 있다. 사이즈조절이나 백그라운드 모드 등이 대표적이다.
headless 옵션 :
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('window-size=1920x1080')
options.add_argument("disable-gpu")
dr = webdriver.Chrome(options=options)
원하는 정보 지정하기
# 특정 클래스 혹은 id가 포함된 값들 중 하나만 가져온다 : find_element_by_css_selector
# 특정 클래스 혹은 id가 포함된 값들 모두 가져온다 : find_element_by_css_selector
# 클래스 표시 : . / id 표시 : #
# 예) h2.hp__hotel-name 해석 : h2 태그의 'hp__hotel-name' 클래스
name = driver.find_element_by_css_selector("h2.hp__hotel-name").text
price_b = driver.find_elements_by_css_selector("div.bui-price-display__value")
참고
도메인 주소/robots.txt 를 확인하면 크롤링 가능 여부를 파악할 수 있음