가급적이면 requests와 Beautiful Soup으로 크롤링하고 싶었지만, 이 둘 만으로는 절대 안 긁어와지는 것들이 간혹 있다. 그럴 땐, selenium을 시도해볼 만하다.
코드를 작성하기에 앞서 가상환경을 활성화 해준 뒤, selenium을 설치한다.
pip install selenium
다음으로는, 함께 사용할 웹드라이버를 설치해주면 되는데 phantomJS를 사용하려고 했더니 selenium 에서 지원하지 않는다는 오류가 떠서 chromedriver를 설치했다.
구글링으로 쉽게 다운로드 받을 수 있다.
requests와 beautiful soup도 함께 사용할 예정이므로, 아래와 같이 import 해준다.
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.Chrome('#/Users로 시작하는 크롬드라이버가 설치된 경로/chromedriver')
driver.get() 안에 크롤링 하고자 하는 url을 넣고 soup 또는 selenium의 메소드를 사용해서 원하는 정보를 가져오면 된다.
driver.get(#크롤링 하고자 하는 url)
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
jebal = soup.select('#css selector')
...
driver.quit()
마지막으로 driver.quit()으로 크롤링하며 열린 브라우저를 닫아주어야 하며, 혹시 크롤링 도중에 에러가 나면 가장 마지막에 동작해야할 이 함수가 동작하지 않으니 꼭 수동으로 브라우져를 닫아주어야한다.