본문 바로가기
● 크롤링, 자동화/Selenium

selenium 자동화 수집하기

by 0ver-grow 2020. 11. 8.
반응형

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()

학습 사이트 : https://www.youtube.com/watch?v=ZFmTwbRQ0uc

반응형