이럴 때 문제없이 자료를 수집할 수 있는 팁을 적어보려 한다.
먼저 간단히 ajax 와 jquery 의 구동원리를 생각해보자.
이 두가지 기술은 웹페이지가 호출이 되었을 때, 컨텐츠를 바로 클라이언트로 제공해 주는 것이 아니고, 웹페이지에서 또 다른 기능을 호출해 데이터를 가져와서 웹페이지 중간중간에 데이터를 변경해 주는 기술이다.
그래서 우리가 python 의 requests 로 호출한 웹페이지 소스에는 데이터가 휑하니 비어있게 된다. 하지만 웹브라우져를 통해 호출한 페이지를 볼 경우엔 화면에 내장된 스크립트에 의해 데이터가 변경되어 정상적인 웹페이지를 볼 수 있다.
Selenium 을 통하면 python 에서 웹브라우져를 구동한 것과 동일한 효과를 낼 수 있다.
먼저 pip 를 통해 Selenium을 다운받자
pip install selenium
또 하나 더 필요한 것이 크롬 드라이버이다. 다운 받자
http://chromedriver.chromium.org/downloads
이 페이지에 들어가서 내가 받아야 할 크롬 드라이버 버전을 확인한 후
https://chromedriver.storage.googleapis.com/index.html
이 페이지에 접속하여 다운받는다.
자, 이제 준비 완료!
다운 받은 후에 아래와 같이 모듈을 호출할 수 있다.
from selenium import webdriver
여기서 아래의 옵션은 나중에 크롬을 띄우지 않는 옵션을 주기 위해 사용하였다.from selenium.webdriver.chrome.options import Options
options = Options()
options.headless = Truedriver = webdriver.Chrome(CHROMEDRIVER_PATH, chrome_options=options)
위에서 import 한 webdriver 를 사용하여 위와같이 크롬드라이버가 있는 폴더 위치와 함께 옵션 객체를 넘겨주면 내가 Crawling 할 페이지를 보여줄 가상의 웹브라우져가 완성된다.
오늘은 여기까지만 적어야겠다.ㅠ.ㅠ
너무 피곤하다ㅠ.ㅠ
댓글 없음:
댓글 쓰기