Selenium + Python requests + ChromeDriver #1

Scraper나 Crawler 를 만들다 보면 부딪히는 문제중에 제일 난감할 때가 Ajax나 jquery 가 포함된 웹페이지를 만났을 때다.
이럴 때 문제없이 자료를 수집할 수 있는 팁을 적어보려 한다.

먼저 간단히 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 = True
driver = webdriver.Chrome(CHROMEDRIVER_PATH, chrome_options=options)

위에서 import 한 webdriver 를 사용하여 위와같이 크롬드라이버가 있는 폴더 위치와 함께 옵션 객체를 넘겨주면 내가 Crawling 할 페이지를 보여줄 가상의 웹브라우져가 완성된다.

오늘은 여기까지만 적어야겠다.ㅠ.ㅠ
너무 피곤하다ㅠ.ㅠ





댓글 없음:

댓글 쓰기

Latest Contents

pytorch installation with GeForce RTX 3050 Ti

 1. Install CUDA toolkit 11.8     ※ WARNING : Please except for "Nsight VSE" to avoid Installation fail.      2. Download cuDNN ( ...

Most viewed