[python] selenium 웹크롤러 정리
환경준비
파이썬(3.5, 3.6), selenium, BeautifulSoup
from bs4 import BeautifulSoup # html 데이터를 전처리
from selenium import webdriver # 웹 브라우저 자동화
from selenium.webdriver.common.keys import Keys
import chromedriver_autoinstaller
import time # 서버 통신 시 시간 지연
0. 크롬창 띄우기
driver = webdriver.Chrome("chormedriver.exe") # 크롬 드라이버 로드(윈도우 기준, mac은 절대경로)
dirver.get(url) # url 입력
※ 크롬 드라이버 autoinstaller 이용
chrome_path = chromedriver_autoinstaller.install()
driver =webdriver.Chrome(chrome_path)
1. element 찾기 주요 함수
# 엘리먼트(element) : 홈페이지를 이루고 있는 다양한 요소들을 부르는 말.
# 엘리먼트 찾기 : 오른쪽 화면의 상단의 네모칸 화살표 있는 버튼을 누릅니다
● 기본은 id, name, class 로 찾는다.
element = driver.find_element_by_id(‘id’)
element = driver.find_element_by_name(‘name’)
element = driver.find_element_by_css_selector(‘#tsf .gLFyf.gsfi’)
● 링크된 text로 찾을 때
element = driver.find_element_by_link_text('text')
● id, name, class없을 때 xpath 이용한다.
element = driver.find_element_by_xpath("""//*[@id="snb"]/div/ul/li[1]/a""").click( ) # 정렬 버튼의 xpath 클릭
● 기타
element = driver.find_element_by_class_name(‘some_class_name’)
element = driver.find_element_by_tag_name(‘h1’)
2. 브라우저 컨트롤 주요 함수
● driver 컨트롤하는 명령어들
driver.back() # 뒤로 가기
driver.foward() # 앞으로 가기
driver.switch_to.window(driver.window_handles[-1]) # 최근 열린 탭으로 전환
driver.close() # 현재 탭 닫기
driver.switch_to.window(driver.window_handles[0]) # 맨 처음 탭으로 변경(0번 탭)
alert = driver.switch_to.alert # alert창-“확인” 누르기
alert.accept() #
time.sleep(1) # 시간 텀 두기
● 버튼 클릭
button = driver.find_element_by_css_selector(ele)
AC(driver).move_to_element(button).click().perform() # 버튼 클릭
driver.find_element_by_id("_search_option_btn").click( ) # 서치 옵션 버튼 클릭
● 인풋 받기
input('사용자에게 받을 내용 : ') # 인풋 받아서 변수로 사용 가능
● 시간
time.sleep(2) # 2초 기다려라
● 텍스트 제거 및 입력
# 한글자씩 입력창에 입력
s_date = driver.find_element_by_xpath("""//*[@id="blog_input_period_begin"]""") # 날짜 입력할 부분 선택
s_date.clear( ) # 날짜 입력 부분에 기존에 입력되어 있던 날짜를 제거
start_date = “2019-04-05”
for c in start_date:
s_date.send_keys(c)
time.sleep(0.3)
https://fenderist.tistory.com/168
[python] Selenium으로 스크래핑하기
[python] Selenium으로 스크래핑하기 1. Selenium으로 DOM요소 선택 - 요소를 찾지 못하면 NoSuchElementException 발생 이름 설명 처음요소를 추출 find_element_by_id(id) id속성으로 요소를 하나 추출 find_..
fenderist.tistory.com