본문 바로가기
NLP

크롤링 3

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

이 장에서는 selenium과 phantomJS를 이용하여 네이버에 로그인을 하는 방법을 배웁니다.

 

이 전의 노트와 같이 라이브러리를 불러옵니다.

import requests
from bs4 import BeautifulSoup
from selenium import webdriver
import time

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

 

 

 

다음 url은 네이버 로그인 웹페이지 입니다. 그리고 driver.get()을 실행합니다.

naver_url = "https://nid.naver.com/nidlogin.login" 
driver.get(naver_url) 
time.sleep(1)

-> sleep 을 주는 이유는 web browser 가 켜지는데 시간이 걸리기 때문입니다. 

 

 

이제 가상으로 로그인을 해봅니다.

user_id = '' #입력
user_pw = '' #입력

driver.save_screenshot('naver_before_login.png')

elem = driver.find_element_by_id("id")
elem.send_keys(user_id)
elem = driver.find_element_by_id("pw")
elem.send_keys(user_pw)
elem.submit()
time.sleep(5)

driver.save_screenshot('naver_after_login.png')

 

 

 

이제 로그인을 한 후에 크롤링을 해보도록 합니다.

 

교수님의 아이디와 비밀번호를 활용하여 실행한 코드입니다. 사이트마다 로그인에 대한 보안 정책같은게 저마다 달라서 잘 살펴보고 실행해야할 것 같습니다.

 

js_path = r'C:\Users\rok80\class_data\phantomjs-2.1.1-windows\phantomjs-2.1.1-windows\bin\phantomjs.exe'
url = "http://snulife.com/main"
driver.get(url)



user_id = ""
user_pw = ""
driver.save_screenshot('snu_before_login.png')
elem = driver.find_element_by_id("login_form_user_id")
elem.send_keys(user_id)
elem = driver.find_element_by_name("password")
elem.send_keys(user_pw)
elem.submit()
time.sleep(1)
driver.save_screenshot('snu_after_login.png')



#main 에서 best page 로 이동한다.
driver.get("http://snulife.com/best")

soup = BeautifulSoup(driver.page_source)
for row in soup.find_all("table"):
    print(row.tbody)

-> 실행이 잘 되었습니다.

 

728x90
반응형

'NLP' 카테고리의 다른 글

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

댓글