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
반응형
댓글