1. Selenium이란?
https://selenium-python.readthedocs.io/
- 프로그램 실행하면 브라우저 자동으로 띄워줌(웹드라이버를 통해 제공)
- 편하지만 느림
- 실제 브라우저로 실행한 것과 동일한 값을 얻을 수 있다.
- 브라우저를 직접 동작시키기 떄문에 Javascript등 비동기적으로 혹은 뒤늦게 로드되는 컨텐츠들을 가져올 수 있다.
- 즉, 눈에 보이는 모든 컨텐츠를 다 가져올 수 있다.
- chrome들의 브라우저를 제어
2. Selenium 설치
- selenium 설치되어있는지 확인
- 설치 명령어
- 설치 확인
2. selenium을 통해 자동으로 https://www.python.org/ 페이지를 열고 해당 페이지 안에 있는 pypi버튼을 클릭해 https://pypi.org/가 열리도록 구현해본다.
- 페이지 URL
- Webdriver생성 후 실행하니 빈 페이지가 띄워짐
from selenium import webdriver
import time
# Webdriver 객체생성 : chromedriver.exe 를 실행
browser = webdriver.Chrome('./chromedriver.exe')
- 요청하고자 하는 url을 적은 후 다시 실행하니 해당 페이지가 자동으로 띄워짐
from selenium import webdriver
import time
# Webdriver 객체생성 : chromedriver.exe 를 실행
browser = webdriver.Chrome('./chromedriver.exe')
# python.org 요청을 보내기
browser.get('https://www.python.org/')
- 해당 페이지 3초간 떠있다 자동으로 사라짐
from selenium import webdriver
import time
# Webdriver 객체생성 : chromedriver.exe 를 실행
browser = webdriver.Chrome('./chromedriver.exe')
browser
# python.org 요청을 보내기
browser.get('https://www.python.org/')
# pypi 에 해당하는 element 찾기
# click() 함수 실행
# sleep
time.sleep(3)
# driver종료
browser.quit()
- python.org페이지를 자동으로 열고 자동으로 pypi탭을클릭한후 닫힌다.
from selenium import webdriver
import time
# Webdriver 객체생성 : chromedriver.exe 를 실행
browser = webdriver.Chrome('./chromedriver.exe')
browser
# python.org 요청을 보내기
browser.get('https://www.python.org/')
# pypi 에 해당하는 element 찾기
menus = browser.find_elements_by_css_selector('#top ul.menu li')
#print(menus) #[<selenium.webdriver.remote.webelement.WebElement (session="f68a9f0d3dea9910d1082f547c75d945", element="0.18112714160758459-1")>, <selenium.webdriver.remote.webelement.WebElement (session="f68a9f0d3dea9910d1082f547c75d945", element="0.18112714160758459-2")>, <selenium.webdriver.remote.webelement.WebElement (session="f68a9f0d3dea9910d1082f547c75d945", element="0.18112714160758459-3")>, <selenium.webdriver.remote.webelement.WebElement (session="f68a9f0d3dea9910d1082f547c75d945", element="0.18112714160758459-4")>, <selenium.webdriver.remote.webelement.WebElement (session="f68a9f0d3dea9910d1082f547c75d945", element="0.18112714160758459-5")>, <selenium.webdriver.remote.webelement.WebElement (session="f68a9f0d3dea9910d1082f547c75d945", element="0.18112714160758459-6")>]
pypi = None
for menu in menus:
print(menu.text)
'''
Python
PSF
Docs
PyPI
Jobs
Community
'''
if menu.text == 'PyPI':
pypi = menu
# click() 함수 실행
pypi.click()
# sleep
time.sleep(5)
# driver종료
browser.quit()
- 자동 스크린샷 저장
from selenium import webdriver
import time
# Webdriver 객체생성 : chromedriver.exe 를 실행
driver = webdriver.Chrome('./chromedriver.exe')
driver.get('https://www.naver.com/')
driver.save_screenshot('img/naver.png')
time.sleep(3)
driver.close()
'Python > Python 웹 크롤링' 카테고리의 다른 글
Python - cine21 데이터 크롤링 (0) | 2020.07.31 |
---|---|
파이썬 OpenAPI_07월 24일 (0) | 2020.07.24 |
파이썬 OpenAPI_07월 23일 (0) | 2020.07.23 |
파이썬 OpenAPI_07월 22일 (0) | 2020.07.22 |
파이썬 OpenAPI_07월 21일 (0) | 2020.07.21 |