selenium 자동화 수집하기
2020. 5. 6
오류
from selenium import webdriver
driver = webdriver.Chrome()
까지 입력하자
WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home오류 해결
검색진행
내 크롬브라우저환경에 맞는 chromedriver다운 후 해당 주소 복사
정상 실행
크롬드라이버의 위치를 삽입 후 정상 실행
from selenium import webdriver
driver = webdriver.Chrome(executable_path=r"C:\dev_python\Webdriver\chromedriver")
url = 'https://google.com'
driver.get(url)
코드 실행
(자동화 브라우저 작동)
구글 검색창의 클래스 확인
검색창 클래스 활용한 자동 검색어 입력
전체 코드에 하단 코드 추가
driver.find_element_by_css_selector('.gLFyf.gsfi').send_keys('파이썬')
실행시 화면
자동 검색 위한 enter버튼
검색어 입력 후 enter키를 눌러야 검색 가능
자동으로 enter키를 누를 수 있도록 하단 코드 추가
from selenium.webdriver.common.keys import Keys
driver.find_element_by_css_selector('.gLFyf.gsfi').send_keys(Keys.ENTER)
코드실행시 화면
현재 코드
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(executable_path=r"C:\dev_python\Webdriver\chromedriver")
url = 'https://google.com'
driver.get(url)
driver.find_element_by_css_selector('.gLFyf.gsfi').send_keys('파이썬')
driver.find_element_by_css_selector('.gLFyf.gsfi').send_keys(Keys.ENTER)
검색 결과 나온 하단의 페이지를 조회하기
우측 마우스 클릭시 검사 버튼을 누르면 해당 태그 나옴
다른 검색어도 클래스명 동일
이 클래스명을 통해 해당 사이트 클릭(접속)하기
하단 코드 추가
driver.find_element_by_css_selector('.LC20lb.DKV0Md').click()
모든 검색결과가 LC20lb.DKV0Md 클래스명을 가지지만 가장 앞에 있는 사이트만 클릭해준다.
만약 클래스명이 .LC20lb.DKV0Md인 검색결과 중 3번째를 띄우고 싶다면?
s를 붙여주고 해당 리스트 번호를 붙여주면 된다.
driver.find_elements_by_css_selector('.LC20lb.DKV0Md')[2].click()
전체코드
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(executable_path=r"C:\dev_python\Webdriver\chromedriver")
url = 'https://google.com'
driver.get(url)
driver.find_element_by_css_selector('.gLFyf.gsfi').send_keys('파이썬')
driver.find_element_by_css_selector('.gLFyf.gsfi').send_keys(Keys.ENTER)
driver.find_elements_by_css_selector('.LC20lb.DKV0Md')[2].click()