파이썬으로 웹 크롤링 하기 위해서 사용하는 모듈.
설치 방법
- pip install selenium
- 해당하는 브라우저에 맞는 웹드라이버 설치 필요
사용법
크롬을 사용하여 해봤는데, 개발자도구를 사용하여 HTML을 보면서 진행
from selenium import webdriver # webdriver 사용
from selenium.webdriver.common.alert import Alert # alert 창 제어
import time # 하다보면 너무빨리 진행되서 다음으로 안넘어감. sleep을 중간중간 줘야함.
DRIVER_PATH = "" # 설치한 웹드라이버 경로
URL = "" # 작업을 진행할 웹주소(URL)
driver = webdriver.Chrome(DRIVER_PATH)
driver.get(URL)
time.sleep(2)
element_id = driver.find_element_by_name("") # html 내용 중 name ="" 에 속하는 것을 찾아옴.
element_id.send_keys("") # 해당 element(name)에 넣을 Text
time.sleep(2)
driver_find_element_by_xpath('//a[img/@src="*.png"]') # xpath를 사용해서 <a> <img src>를 찾는 과정
'''
내 경우에는 <frame>안에 #document가 존재했고 #document 안에 <html> 등 존재했었음.
아래 내용은 #document로 접근하는 방법
'''
time.sleep(2)
aaa = driver.find_elements_by_tag_name('frame')[0]
driver.switch_to_frame(aaa)
time.sleep(2)
driver.find_elements_by_xpath("")[0].click() # 원하는 속성을 찾고 클릭 동작까지 진행
'''
alert 창 제어하는 법
'''
time.sleep(2)
bbb = Alert(driver)
bbb.accept() # 확인 버튼 클릭
time.sleep(2)
bbb.dismiss() # alert창 끄기.
driver.quit() # 브라우저 종료
! 만약 permission error 가 뜬다면, 경로를 입력하는부분에서 파일명까지 입력해주자.
(ex) "c:\\(driver가 위치한 경로)\\(드라이버.exe)"
반응형
'Language > Python' 카테고리의 다른 글
python range, enumerate 차이점 (1) | 2020.01.14 |
---|---|
python 리스트 안에 딕셔너리 중복제거 하는 방법 (0) | 2019.07.25 |
파이썬 multiprocessing 모듈 (map_async, apply_async) (0) | 2019.07.16 |
python logging 예제 (0) | 2019.01.26 |
python chrome password (0) | 2019.01.13 |