【发布时间】:2019-09-22 00:02:58
【问题描述】:
在我开始提问之前,我很抱歉我是一名韩国高中生,所以我的问题可能难以阅读。
我希望我的代码打印图像的 src,但是当我超过 22 岁时它会打印无,所以我无法下载任意数量的图像。
它是这样打印的。 这是我插入关键字“猫”时的图像 src。
23 无
24 无
25 无
26 无
我在谷歌上搜索了大约一个小时,但我找不到这个错误(错误?) 这就是我第一次在stackoverflow上提出问题的原因
我跳过了名为 make_dir 的函数
import os
import shutil
import urllib.request
import time
from selenium import webdriver
def crawl(keyword, max_count):
cnt = 0
url = "https://www.google.co.in/search?q=" + keyword + "&tbm=isch" # google search url with search word
browser = webdriver.Chrome("C:\\Users\\Master\\Desktop\\crawling\\chromedriver.exe") # webdriver
browser.get(url) # open web page
img_list = browser.find_elements_by_class_name("rg_ic") # find image
for i, el in enumerate(img_list):
if cnt >= max_count:
break
img = img_list[i]
src = img.get_attribute('src')
if src is None:
print(i, src) # img_list includes None so I need to fix it
continue
cnt += 1
print(i, src) # print src
urllib.request.urlretrieve(src, str(cnt) + ".png") # download image
browser.quit()
if __name__ == "__main__":
max_count = int(input("Number of crawls : "))
keyword = input("Search word : ")
make_dir()
crawl(keyword, max_count)
我编写了打印 src 的代码。 它打印 src 直到 i 是 23,但是当它超过 22 时,这些只打印 None 我想让它们打印正确的 src
23 无
24 无
25 无
26 无
【问题讨论】:
-
我没有亲自测试过,但您可能会遇到这个问题,因为谷歌使用延迟加载来加载图像,这意味着只加载视口中的图像。您可能需要滚动才能加载这些图像。请参阅stackoverflow.com/questions/20986631/…的答案
-
很高兴您能帮助我,但我认为您指出的问题与本案无关。我试过你指出,因为它可以工作,但这仍然包括列表中的 None
-
嘿,检查我的答案,如果它有效,请告诉我