파이썬으로 구글 이미지 자동 다운로드 예제 소스 공유해 봅니다.
제가 티스토리 블로그 포스팅할 때 아래 작업된 소스를 활용해서 실제로 유용하게 사용하고 있습니다.
아래 elem.send_keys("") 의 ""에 검색하고자 하는 키워드 입력하고 실행만 하면,
본인 PC의 저장경로인 (sav_path = "C:\\Images\\google\\") 에
저장됩니다. (저장 경로는 임의로 변경 가능하니 변경하시면 됩니다.)
간단하죠?
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import urllib.request
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')
driver = webdriver.Chrome(chrome_options=options)
driver.get("https://www.google.co.kr/imghp?hl=ko&authuser=0&ogbl")
elem = driver.find_element_by_name("q")
elem.send_keys("무료 이미지")
elem.send_keys(Keys.RETURN)
#click to 도구
tool_button = driver.find_element_by_css_selector("#yDmH0d > div.T1diZc.KWE8qe > c-wiz > div.ndYZfc > div > div.tAcEof > div.PAYrJc > div.ssfWCe > div > div")
tool_button.click()
time.sleep(1)
#click to Usage Rights
license_button = driver.find_element_by_css_selector("#yDmH0d > div.T1diZc.KWE8qe > c-wiz > div:nth-child(2) > c-wiz.Npn1i > div > div > div.qcTKEe > div > div:nth-child(5) > div > div.xFo9P.r9PaP")
license_button.click()
time.sleep(1)
#click to Creative Commons licenses
license_button = driver.find_element_by_css_selector("#yDmH0d > div.T1diZc.KWE8qe > c-wiz > div:nth-child(2) > c-wiz.Npn1i > div > div > div.irf0hb > div > a:nth-child(2) > div > span")
license_button.click()
time.sleep(1)
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
images = driver.find_elements_by_css_selector(".rg_i.Q4LuWd")
sav_path = "C:\\Images\\google\\"
count = 1
for image in images:
try:
image.click()
time.sleep(2)
#imgURL = driver.find_element_by_css_selector(".n3VNCb").get_attribute("src")
imgURL = driver.find_element_by_xpath('/html/body/div[2]/c-wiz/div[3]/div[2]/div[3]/div/div/div[3]/div[2]/c-wiz/div/div[1]/div[1]/div/div[2]/a/img').get_attribute("src")
print("imgURL = ",imgURL)
urllib.request.urlretrieve(imgURL, sav_path + str(count) + " .jpg")
count = count + 1
except:
pass
driver.close()
물론 바로 실행에 앞서 기본적인 파이썬 관련 환경적인 세팅은 되어야겠죠.
기본 환경 세팅은 이전 제 블로그 참조하셔서 다음 순서대로 따라 하시면
쉽게 설치 가능할 거라 생각됩니다.
참고로 저는 파이썬 실행 툴을 파이참을 쓰다가 지금은 비주얼 스튜디오 코드(Visual Studio Code)로 변경했습니다.
다른 이유는 없고, 비주얼 스튜이오 코드가 파이참 대비해서 훨씬 가벼웠습니다.
개취인데 저는 기능이 많더라도 좀 가벼운 걸 선호하는 편입니다.
즉 어느 걸 써도 무방하다는 말입니다.
혹시 하시다가 벽돌 상황을 만나시면 댓글로 남겨주세요.
물론 구글링 해보시면 거의 문제점 찾을 수 있겠지만,
제가 아는 범위에서 답변해 드리겠습니다.
이 블로그의 다른 포스팅 보기
'Integration & Python' 카테고리의 다른 글
파이썬-마크다운 설치, 패키지 사용법 (0) | 2021.06.18 |
---|---|
마크다운(Markdown) 쉽게 따라하기 (0) | 2021.06.10 |
파이썬 파일 복사하기 (0) | 2021.03.11 |
파이썬 (Python) 스토리 (0) | 2021.02.25 |
Pillow 파이썬 이미지 처리 라이브러리 (0) | 2021.02.25 |
댓글