셀레니움 구글 이미지 크롤링

Rm·2020년 12월 13일
0
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import urllib.request

driver = webdriver.Chrome()
driver.get("https://www.google.co.kr/imghp?hl=ko&tab=wi&ogbl") #구글에 이미지탭 URL 주소
elem = driver.find_element_by_name("q")#검색창 태그찾기
elem.send_keys("김선호")#찾은 검색창에 찾고 싶은 키워드 입력
elem.send_keys(Keys.RETURN)#입력받은 키를 누른다
SCROLL_PAUSE_TIME = 1


last_height = driver.execute_script("return document.body.scrollHeight")#스크롤 높이 가져옴

while True:

# 끝까지 스크롤 다운
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

# 1초 대기를 해야 막힘없이 동작한다.
time.sleep(SCROLL_PAUSE_TIME)

# 스크롤 다운 후 스크롤 높이 다시 가져옴
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
images = driver.find_elements_by_css_selector(".rg_i.Q4LuWd") #이미지를 눌렀을때 나오는 큰 이미지의 태그를 찾는다.
count = 1
for image in images:
    try:
        image.click()
        time.sleep(2)
        imgURL = driver.find_element_by_xpath('//*[@id="Sva75c"]/div/div/div[3]/div[2]/c-wiz/div[1]/div[1]/div/div[2]/a/img').get_attribute("src")# 찾은 이미지의 FullxPath를 복사 붙여넣어서 다운로드
        urllib.request.urlretrieve(imgURL, str(count)+".jpg")
        count = count + 1
    except:
        pass

driver.close()

1.pip install selenium 으로 설치
2.버전에 맞는 Chromdriver설치 후 해당 프로젝트 최상위에 위치
3.원하는 url / 셀레니움 공식문서를 참조 후 api를 활용하여 동작

profile
우당탕 개발자 성장기

0개의 댓글