selenium 라이브러리 설치
pip install selenium
Chrome Driver 설치
https://chromedriver.chromium.org/downloads
ChromeDriver - WebDriver for Chrome - Downloads
Current Releases If you are using Chrome version 114, please download ChromeDriver 114.0.5735.16 If you are using Chrome version 113, please download ChromeDriver 113.0.5672.63 If you are using Chrome version 112, please download ChromeDriver 112.0.5615.49
chromedriver.chromium.org
Selenium 실행
Terminal에 적기
python -m venv selenium
activate 시켜서 selenium 가상 환경에 들어가기
.\selenium\Scripts\activate
cd selenium 치고 cd Scripts 치고 activate하는 게 확실함
* activate 안될 시
윈도우 검색창에 'Windows Powershell'을 관리자 권한으로 실행!!
관리자 권한으로 실행 안하면 안됨
실행 후
Set-ExecutionPolicy RemoteSigned 입력
그 다음 y 입력
다시 activate 시키면 됨
selenium 에서 webdriver 불러와서 크롬 사용하기
from selenium import webdriver
driver = webdriver.Chrome(executable_path='C:/DataAnalysis/Tensor/chromedriver.exe') # chromedriver 위치 넣기
driver.get("https://www.google.co.kr/imghp?hl=ko&tab=wi&authuser=0&ogbl") # 구글 이미지
본격적으로 구글 이미지를 크롤링하기
구글 이미지의 검색창에 입력하기
name = 'search name' # 검색어
elem = driver.find_element(By.NAME, "q") # 검색어 name 찾음
elem.send_keys(name) # 검색어를 입력함
elem.send_keys(Keys.RETURN) # 검색어 엔터키
구글 창 전체 화면 만들기
driver.maximize_window()
화면 스크롤 내리기
# scroll down
SCROLL_PAUSE_TIME = 1
# Get scroll height
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
# Scroll down to bottom
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# Wait to load page
time.sleep(SCROLL_PAUSE_TIME)
# Calculate new scroll height and compare with last scroll height
new_height = driver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
try:
driver.find_element(By.CSS_SELECTOR, ".mye4qd").click()
except:
break
last_height = new_height
원하는 이미지 선택하고 클릭하기
driver.find_elements(By.CSS_SELECTOR, ".rg_i.Q4LuWd").click()
이미지의 주소를 불러와서 다운로드 받기
이미지의 태그를 찾고 태그에 src 주소를 가져오기
css(class)보다 더 정확한 원본의 사진을 가져오기 위해 xpath를 사용한다.
driver.find_elements(
By.XPATH,
'/html/body/div[2]/c-wiz/div[3]/div[2]/div[3]/div[2]/div/div[2]/div[2]/div[2]/c-wiz/div/div/div/div[3]/div[1]/a/img[2]').__getattribute__('src')
클릭하고 기다리는 시간 넣어주기
import time
time.sleep(3) # 3초 기다림
image url을 사용하여 이미지 다운로드하기
import urllib.request
urllib.request.urlretrieve(imgUrl, "searchimg.jpg")
해도해도 안되다가 마지막에 되긴했는데 이틀은 꼬박 열심히 한 것 같다..ㅎㅎ
'#컴퓨터 > #코딩' 카테고리의 다른 글
[코딩] ChatGPT와 티스토리 서식 만들기 (5) 서식 주황색 옷 입히기 (0) | 2023.07.14 |
---|---|
[코딩] ChatGPT와 티스토리 서식 만들기 (4) 서식을 한번 넣어볼까 (0) | 2023.07.14 |
[코딩] ChatGPT와 티스토리 서식 만들기 (3) 티스토리 서식 어디서 만드나? (0) | 2023.07.14 |
[코딩] ChatGPT와 티스토리 서식 만들기 (2) HTML,CSS,자바스크립트가 뭔데 (0) | 2023.07.14 |
[코딩] ChatGPT와 티스토리 서식 만들기 (1) 새로운 시작은 날 설레게 하지 (0) | 2023.07.14 |