Selenium을 이용하여 크롤링을 해보자.
우선 설치부터 하겠다.
-> pip install selenium
또한 selenium을 사용하기 위하여 chromedriver을 설치 해주어야 한다.
먼저 자신의 크롬버전을 확인바란다.
chromedriver.chromium.org/downloads
Downloads - ChromeDriver - WebDriver for Chrome
WebDriver for Chrome
chromedriver.chromium.org
자신의 버전에 맞게 홈페이지에서 다운받자.
설치후 압축을 풀고 자신의 파이썬 워크스페이스에 옮겨주자
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("http://naver.com")
코드를 입력하여 네이버브라우저를 열었을때
주소창 밑에 "Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다." 라고 뜬다. 잘 실행된 것이다.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Chrome()
browser.get("http://naver.com")
search_box = browser.find_element_by_id("query")
search_box.send_keys("오늘의 날씨")
search_btn = browser.find_element_by_id("search_btn")
search_btn.click()
위 코드에서 주의깊게 볼건 browser.find_element_by_id이다.
by_id외에
- find_element_by_id
- find_element_by_name
- find_element_by_xpath
- find_element_by_link_text
- find_element_by_partial_link_text
- find_element_by_tag_name
- find_element_by_class_name
- find_element_by_css_selector
이렇게 들어갈 수 있다.
네이트 자동로그인후 네이트 메일 제목들을 다 가져와보겠다.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
browser = webdriver.Chrome()
browser.get("https://www.nate.com/")
id_btn = browser.find_element_by_xpath("//*[@id='ID']")
id_btn.send_keys("YOUR ID")
time.sleep(0.5)
browser.find_element_by_id("PASSDM").send_keys("YOUR PASSWORD")
time.sleep(0.5)
browser.find_element_by_id("btnLOGIN").click()
위 코드 실행결과
import requests
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from bs4 import BeautifulSoup
browser = webdriver.Chrome()
browser.get("https://www.nate.com/")
id_btn = browser.find_element_by_xpath("//*[@id='ID']")
id_btn.send_keys("YOUR ID")
time.sleep(0.5)
browser.find_element_by_id("PASSDM").send_keys("YOUR PASSWORD ")
time.sleep(0.5)
browser.find_element_by_id("btnLOGIN").click()
mail_btn = browser.find_elements_by_link_text("메일")
mail_btn[0].click()
time.sleep(0.5)
soup = BeautifulSoup(browser.page_source,"lxml")
mails = soup.find_all("a", attrs={"class" : "title"})
for mail in mails:
print(mail.text)
원하는 정보를 정확히 파싱했다.
'Python' 카테고리의 다른 글
파이썬을 이용하여 네이버 실시간 급상승검색어 가져오기 (0) | 2021.01.27 |
---|---|
파이썬으로 웹 크롤링하기 (BeautifulSoup 사용) (0) | 2021.01.27 |
Blind SQL Injection code form (0) | 2021.01.26 |
파이썬 정규식 (RegEx) (0) | 2021.01.17 |
enumerate와 list comprehension (0) | 2021.01.12 |