작성
·
225
0
*. 질문 : 큰 이미지 주소추출에서 문제가 발생하는 듯 합니다. 해결점을 못 찾겠습니다.
"고양이"
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import os
import urllib.request
import pyautogui
# keyword = pyautogui.prompt("검색어를 입력하세요")
if not os.path.exists("고양이"):
os.mkdir("고양이")
# 크롬 드라이버 자동 업데이트
from webdriver_manager.chrome import ChromeDriverManager
import time
import pyautogui
import pyperclip
# 브라우저 꺼짐 방지
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
# 불필요한 에러 메시지 없애기
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])
service = Service(executable_path=ChromeDriverManager().install())
browser = webdriver.Chrome(service=service, options=chrome_options)
# 웹페이지 해당 주소 이동
browser.implicitly_wait(10) # 웹페이지 로딩 될때가지 5초는 기다림
browser.maximize_window()
#browser = webdriver.Chrome()
browser.get("https://www.google.co.kr/search?q=%EA%B3%A0%EC%96%91%EC%9D%B4&tbm=isch&ved=2ahUKEwioo8HqscOBAxUM_WEKHdO9CDwQ2-cCegQIABAA&oq=%EA%B3%A0%EC%96%91%EC%9D%B4&gs_lcp=CgNpbWcQAzIECCMQJzIICAAQgAQQsQMyCAgAEIAEELEDMggIABCABBCxAzIICAAQgAQQsQMyCAgAEIAEELEDMggIABCABBCxAzIFCAAQgAQyCAgAEIAEELEDMgUIABCABDoLCAAQgAQQsQMQgwFQ9hJYiRlg7hpoAXAAeACAAY8BiAGMB5IBAzEuN5gBAKABAaoBC2d3cy13aXotaW1nwAEB&sclient=img&ei=eT4QZeiCOoz6hwPT-6LgAw&bih=933&biw=1680")
before_h = browser.execute_script("return window.scrollY")
# 무한 스크롤
while True:
browser.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END)
time.sleep(1)
after_h = browser.execute_script("return window.scrollY")
if after_h == before_h:
break
before_h = after_h
# 썸네일 이미지 태크 추출
imgs = browser.find_elements(By.CSS_SELECTOR,".rg_i.Q4LuWd")
for i, img in enumerate(imgs,1):
# 각 이미지를 클릭해서 큰 사이즈를 찾음
img.click()
time.sleep(2)
# 큰 이미지 추출
target = browser.find_element("img.r48jcc.pT0Scc.iPVvYb")
img_src = target.get_attribute("src")
# 이미지 다운로드
# 크롤링 하다보면 http error 403: forbidden 에러가 납니다.
opener = urllib.request.build_opener()
opener.addheaders = [("User-Agent","Mozila/5.0")]
urllib.request.install_opener(opener)
urllib.request.urlretrieve(img_src,f"고양이{i}.jpg") # 이미지 저장
답변 1
0
# 큰 이미지 추출
target = browser.find_element("img.r48jcc.pT0Scc.iPVvYb")
여기에서 By.CSS_SELECTOR 가 빠졌어요
감사 합니다. 샘
잘 작동 됩니다.