본문 바로가기
NLP

크롤링 2

by 볼록티 2019. 11. 21.
728x90
반응형

이번 페이지에서는 selenium 과 phantom js 에 대해서 추가로 알아보도록 한다. 이 전 페이지에서 3번에 해당하는 방법을 배울 수 있다.

 

selenium 은 javascript 등으로 웹이 동적으로 정보를 받아오는 것을 크롤링 할 수 없을때 코드를 통해 브라우저를 작동하게 해준다.

phantom js를 통해 가상으로 웹을 작동할 수 있다.

 

import requests
from bs4 import BeautifulSoup

from selenium import webdriver

 

phantomjs 를 다운로드하고, 압출을 풀고 phantomjs.exe 파일이 있는 곳의 경로를 지정해준다.

 

js_path = r'C:\Users\rok80\class_data\phantomjs-2.1.1-windows\phantomjs-2.1.1-windows\bin\phantomjs.exe'
driver = webdriver.PhantomJS(executable_path=js_path)

 

-> windows 보안경고 창이 뜨고 액세스 허용을 해주면 된다.

 

이 아래부분은 일반적인 scraping 과 비슷하다.

url = "http://www.yonhapnews.co.kr/home09/7091000000.html?query\
=%EC%95%8C%ED%8C%8C%EA%B3%A0&from=20150324&to=20160324&period=1y"

driver.get(url)
soup = BeautifulSoup(driver.page_source)
soup.find_all("div", class_="cts_atclst")

 

브라우저를 작동하는 방식이기 때문에 브라우저를 켜는데 시간이 걸리므로, sleep을 해준다.

import time
url = "http://www.yonhapnews.co.kr/home09/7091000000.html?query\
=%EC%95%8C%ED%8C%8C%EA%B3%A0&from=20150324&to=20160324&period=1y"
driver.get(url)
time.sleep(2)
#그리고 현재 잘 켜졌는지 screen shot 을 통해 확인
driver.save_screenshot('yeonhap.png')

 

-> 'yeonhap.png' 경로를 따로 지정하지 않았기 때문에 실행 후 웹 화면을 캡쳐하여 python working directory에 저장합니다.

 

 

 

결과를 확인을 해본다.

soup = BeautifulSoup(driver.page_source) 
soup.find_all("div", class_="cts_atclst")

 

 

 

728x90
반응형

'NLP' 카테고리의 다른 글

코사인 유사도를 활용한 유사 문서 검색  (0) 2019.11.22
뉴스 기사 분류  (0) 2019.11.22
크롤링 4  (0) 2019.11.21
크롤링 3  (0) 2019.11.21
크롤링 1  (0) 2019.11.21

댓글