인프런 커뮤니티 질문&답변

jaehyun_k님의 프로필 이미지
jaehyun_k

작성한 질문수

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

이미지 크롤링시 질문있어요!!

작성

·

433

1

이것이 진짜 크롤링이다 - 실전편

네이버 이미지 주소추출 수업을 듣고있다가 질문드려요!

 

이미지의 URL을 크롤링 하던 중 약 550개 이미지 URL 크롤링 중 350개 정도는 

아래와 같이 URL이 크롤링 되더라구요 .. 그러면서 이미지 다운도 안되구요.. 뭐가 문제일까요 .ㅠ 도와주세요!

data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7

 

== 소스 코드==

from webbrowser import BackgroundBrowser
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-logging"])

url = "https://search.naver.com/search.naver?where=image&sm=tab_jum&query=%EB%A7%A5%EB%B6%81"
browser = webdriver.Chrome("C:/chromedriver.exe")
browser.implicitly_wait(10)
browser.maximize_window()
browser.get(url)
 
# 무한 스크롤 처리

# 스크롤 전 높이
before_h = browser.execute_script("return window.scrollY")

# 무한 스크롤
while True:
    #맨 아래로 스크롤을 내린다.
    # browser.find_element(By.CSS_SELECTOR,"body").send_keys(Keys.END)
    browser.find_element_by_css_selector("body").send_keys(Keys.END)

    # 스크롤 사이 페이지 로딩 시간
    time.sleep(3)

    # 스크롤 후 높이
    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("a.link_thumb._imageBox._infoBox>._image._listImage")

for i, img in enumerate (imgs,1) :
    img_src = img.get_attribute("src")
    print(i, img_src)

 

답변 1

0

스타트코딩님의 프로필 이미지
스타트코딩
지식공유자

이미지를 다운받아오지 못해서 발생하는현상입니다.

컴퓨터마다 속도, 인터넷속도가 달라서 테스트환경마다 다를 겁니다.

 

 

스크롤 시 time.sleep을 더 올려서 기다려주거나,

좀 더 정확한 방법은 이미지를 다운로드 할 때, 그 이미지로 화면 focus를 이동시키는 방법이 있습니다.

 

 

jaehyun_k님의 프로필 이미지
jaehyun_k

작성한 질문수

질문하기