성장 기록 블로그🌴
%1011 파이썬 크롤링 뿌시기 3일차! ( selenium 라이브러리, 검색 데이터 입력, 검색 데이터 자동 검색하기 ) 본문
AI & BigData 교육과정/Python 관련
%1011 파이썬 크롤링 뿌시기 3일차! ( selenium 라이브러리, 검색 데이터 입력, 검색 데이터 자동 검색하기 )
wlswls2s 2022. 10. 11. 16:44728x90
< 파이썬 웹크롤링 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