성장 기록 블로그🌴

%1011 파이썬 크롤링 뿌시기 3일차! ( selenium 라이브러리, 검색 데이터 입력, 검색 데이터 자동 검색하기 ) 본문

AI & BigData 교육과정/Python 관련

%1011 파이썬 크롤링 뿌시기 3일차! ( selenium 라이브러리, 검색 데이터 입력, 검색 데이터 자동 검색하기 )

wlswls2s 2022. 10. 11. 16:44
728x90

< 파이썬 웹크롤링 3일차 내용 >

 

 


◆ 파이썬 기본

개념정리

Selenium

: 동적인 웹 페이지의 데이터를 수집할 때 사용하는 라이브러리

동적인 웹 페이지 : 사용자의 제어에 의해서 보여지는 컨텐츠를 가진 페이지

ex) 클릭했을 때 새로운 컨텐츠가 보여지거나

스크롤을 내렸을 때 새로운 컨텐츠가 보여지거나

제어 : 클릭 , 스크롤 , 창 닫기 , 데이터 입력하기 등등

 

< Selenium 환경 구축 >

1. Selenium 라이브러리 설치 -> !pip install selenium

2. webdriver 설치 : https://chromdriver.chromium.org/downloads

=> 현재 브라우저 버전에 맞춰 설치 (크롬 경우 - 크롬 설정-> 크롬 정보: 업데이트 버전 확인)

=> 윈도우 , 맥 , 리눅스 3가지로 제공하기 때문에 현재 운영체제에 맞춰서 설치

압축 푼 exe 파일을 파이썬 파일 위치와 동일한 폴더에 옮기기!

# 환경 구축
# 1. Selenium 라이브러리 설치 -> !pip install selenium
# 2. webdriver 설치 : https://chromdriver.chromium.org/downloads
# => 현재 브라우저 버전에 맞춰 설치 (크롬 경우 - 크롬 설정-> 크롬 정보: 업데이트 버전 확인)
# => 윈도우 , 맥 , 리눅스 3가지로 제공하기 때문에 현재 운영체제에 맞춰서 설치

# 압축 푼 exe 파일을 파이썬 파일 위치와 동일한 폴더에 옮기기!
# 2. Web driver 실행 및 브라우저 제어를 위한 라이브러리 - Chrome 브라우저 사용
from selenium import webdriver as wb

# 키보드의 값을 제어할 수 있는 라이브러리 (space,enter,/,숫자,f1~f12,end,방향키 등등)
from selenium.webdriver.common.keys import Keys

# 요소를 접근하기 위한 방식을 활용할 수 있는 라이브러리
from selenium.webdriver.common.by import By
url = "https://www.naver.com"

Chrome() WebDriver 실행 함수

Chrome() : 설치된 webdriver를 실행시키기 위한 함수

사용방법 : Chrome(경로생략가능)

실행할 파이썬 파일과 같은 폴더에 있는 경우에는 경로를 생략 가능함 -> wb.chrome()

# Chrome() : 설치된 webdriver를 실행시키기 위한 함수
# 사용방법 : Chrome(경로생략가능)
# ex) smhrd 사용자계정에 webdriver 파일이 있는 경우 -> wb.Chrome("C:/Users/smhrd/webdriver.exe")
# 이런식으로 경로를 써주어야함

# 실행할 파이썬 파일과 같은 폴더에 있는 경우에는 경로를 생략 가능함 -> wb.chrome()
driver = wb.Chrome()

# 브라우저 실행
driver.get(url)

페이지 조정 함수 ( 뒤로 가기, 앞으로 가기 , 브라우저 닫기 )

# 뒤로 가기
driver.back()
# 앞으로 가기
driver.forward()
# 브라우저 닫기
driver.quit()
## <a> naver </a>
## <a> : 시작태그
## </a> : 끝태그
## naver : 요소

입력창에 데이터 보내기

driver.find_element(접근방식, 요소를 선택할 수 있는 값 )

send_keys(데이터) 함수 : 접근한 요소에 데이터를 전송하는 함수

검색창에 검색 할 값 입력 후 enter를 쳐서 한번에 검색 하기

# 입력창에 데이터 보내기 - 검색창 찾기 (한번에 enter쳐서 들어가기!)
# 내가 '커피' 쳐서 보내면 검색창에 커피라고 입력되어짐
# driver : 브라우저, find_element : 요소를 찾을거야 ,by.선택자 , 값 , send_keys : 이 값을 보낼거야
# \n의 의미 : 'Enter' 의 의미 => 검색할 값에 \n을 붙이면 검색된 페이지가 나올 것임
driver.find_element(By.CSS_SELECTOR , "#query").send_keys("커피\n")

검색 할 데이터 친 후, 검색 버튼을 클릭하여 검색하기!

# 검색 할 데이터 치기
driver.find_element(By.CSS_SELECTOR , "#query").send_keys("커피")

 

# 현재 브라우저에서 요소 찾기 - 검색버튼 찾아서 클릭!

driver.find_element(By.CSS_SELECTOR, "#search_btn").click()

=> 자동으로 검색까지 됨

728x90