inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

구글 이미지 주소 추출 - 오류(고양이)

292

yhahn02

작성한 질문수 3

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")   # 이미지 저장

python 웹-크롤링

답변 1

0

스타트코딩

# 큰 이미지 추출

target = browser.find_element("img.r48jcc.pT0Scc.iPVvYb")

 

여기에서 By.CSS_SELECTOR 가 빠졌어요

1

yhahn02

감사 합니다. 샘

잘 작동 됩니다.

셀레니움 환경설정 오류

0

45

2

네이버 로그인 관련

0

252

2

안녕하세요 셀레니움에 대해서 질문

0

84

1

크롤링 연습사이트 문의

0

95

2

선택자 질문

0

71

2

'특정 요소가 나타날 때까지 스크롤' 부분 에러

0

76

2

자동 로그인 질문

0

86

2

44강 제목, 링크

0

105

1

원하는 값이 없을 때

0

89

2

크롤링한 링크가 엑셀로 들어가면 작동이 안되요

0

227

2

셀레니움 PDF자료는 받을 수 있나요

0

100

2

글목록 추출하기

0

97

2

메일 자동화 로그인 중복방지문자해결 오류 및 명시적 대기 질문

0

88

2

강의 노트가 어디에 있는건가요?

0

80

2

강의 커리큘럼 질문

0

97

1

조건문 else 사용하지 않는 이유

0

75

2

셀레니움으로 접근할 수 없는 경우

0

95

2

웹페이지 변경

0

70

2

자바스크립트로 태그 선택 시 질문입니다.

1

64

2

수료증은 어떻게 받나요?

0

117

2

class명을 활용하여 선택자를 만들지 않는 경우..?

0

60

2

드라이버가 안 열려요

0

79

2

이거 해결방법 아시는 분?

0

121

2

네이버 지식인 크롤링..

0

201

2