기본으로 내장된 라이브러리가 아니므로 설치 필요함
!pip install selenium
from selenium import webdriver as wb // <웹 브라우저를 제어하기 위한 라이브러리>
from selenium.webdriver.common.by import By // <html 문서에서 태그와 선택자를 찾기 위한 라이브러리>
from selenium.webdriver.common.keys import Keys // <웹에게 값을 "입력"하기 위한 라이브러리>
from bs4 import BeautifulSoup as bs // <컴퓨터가 이해하기 쉬운 객체 형태로 변환해주는 라이브러리>
import pandas as pd // <수집한 정보를 DataFrame화 하기 위한 라이브러리>
import time // <코딩 중간에 대기시간을 넣기 위한 라이브러리>
import os // <파일이나 폴더를 생성해주는 라이브러리 (운영체제 기능 사용하는 라이브러리)>
from urllib.request import urlretrieve // <이미지 경로(url)를 파일로 변환해주는 라이브러리>
크롬드라이버를 항상 최신버전으로 유지해주어야 한다.
구글에 "크롬드라이버" 검색
사용 중인 크롬 버전과 일치하는 드라이버를 크롤링 폴더에 다운로드
크롬 설정 페이지에서 버전 정보 확인 가능
driver = wb.Chrome()
// 주소를 알려주지 않으면 빈 페이지가 뜨므로 주소를 지정해야 한다
// requests 처럼 get 메소드를 사용해서 페이지의 url 입력
url = 'https://www.naver.com/'
driver.get(url)
search = driver.find_element(By.ID, 'query')
// By.선택자는 html의 선택자와 동일하게 사용 가능하다.
// search.send_keys(Keys.ENTER) -> 엔터 기능 실행 (Keys는 라이브러리)
search.send_keys(Keys.ENTER)
try:
// 에러가 나기 전까지 실행할 부분을 try 영역에 작성
for i in range(15) :
btn_more = driver.find_element(By.CLASS_NAME, 'c_05')
btn_more.click()
except:
// 에러가 났을 때 실행할 부분을 except 영역에 작성
print('클릭 완료')
// 바탕화면에 포켓몬 도감이라는 폴더 생성하기 -> os 라이브러리 사용
// 경로 작성 시 \는 이스케이프코드 이므로 \\ 로 작성하거나 / 로 바꿔야 한다
if not os.path.isdir('C:/Users/smhrd/Desktop/포켓몬도감') :
os.mkdir('C:/Users/smhrd/Desktop/포켓몬도감') // 폴더를 생성하는 코드
print('폴더 생성 완료')
else:
print('이미지 폴더가 이미 존재합니다')
// os.path.isdir는 경로에 디렉토리(폴더)가 존재하는지 확인하는 기능
// urlretrieve(바꿀 값, '저장할경로/파일이름.확장자명')
urlretrieve(poke_img_list[0], 'C:/Users/smhrd/Desktop/포켓몬도감/001.jpg')
스크롤 내리는 법
방향키 ↓
page down
space
end (가장 빠름)
키보드에 있는 end키를 사용해서 스크롤 내리기 (자동 스크롤)
--> 누구에게 부탁할까?
화면 전체를 담당하는 body 태그에게 부탁한다
body = driver.find_element(By.CSS_SELECTOR, 'body')
for i in tq(range(20)):
body.send_keys(Keys.END)
time.sleep(1)
// body 태그를 지정한 후 반복문을 통해 END키를 사용한다.