繁体   English   中英

用python下载谷歌图片无法下载图片

[英]Google image download with python cannot download images

我正在使用google_images_download库下载关键字的前 20 张图片。 当我最后几天使用它时,它工作得很好。 代码如下。

from google_images_download import google_images_download

response = google_images_download.googleimagesdownload()

arguments = {"keywords":keyword,"limit":10,"print_urls":True}
paths = response.download(arguments)

现在它给出了以下错误。

Evaluating...
Starting Download...


Unfortunately all 10 could not be downloaded because some images were not downloadable. 0 is all we got for this search filter!

Errors: 0

我该如何解决这个错误。

谷歌端发生了一些变化(他们如何响应请求)导致了这个问题。 github 上的Joeclinton1对原始 repo 做了一些修改,提供了一个临时修复。

您可以在此处找到更新的存储库: https : //github.com/Joeclinton1/google-images-download.git 如果我没记错的话,解决方案是在patch-1分支中。

  1. 首先卸载当前版本的 google_images_download。

  2. 然后通过以下方式手动安装 Joeclinton1 的 repo:

git clone https://github.com/Joeclinton1/google-images-download.git
cd google-images-download && sudo python setup.py install #no need for 'sudo' on windows Anaconda environment

或者用pip安装

pip install git+https://github.com/Joeclinton1/google-images-download.git

这应该可以解决问题。 请注意,目前此 repo 最多仅支持 100 个图像。

我在使用 google-image-download 时遇到了同样的问题,它以前可以完美运行! 我有一个我想建议的替代方案,它应该可以解决问题。

解决方案:不要为 Python 使用 google-image-download,而是使用从 Bing 下载的 bing-image-downloader! 搜索引擎。

脚步:

第 1 步:使用以下命令安装库: pip install bing-image-downloader

第2步:

from bing_image_downloader import downloader
downloader.download(query_string, limit=100,  output_dir='dataset', 
adult_filter_off=True, force_replace=False, timeout=60)

而已! 您需要做的就是将图像主题添加到 query_string。

笔记:

您可以进一步调整的参数:

query_string :要搜索的字符串。

限制:(可选,默认为 100)要下载的图像数量。

output_dir :(可选,默认为“数据集”)输出目录的名称。

Adult_filter_off :(可选,默认为 True)启用禁用成人过滤。

force_replace :(可选,默认为 False)删除文件夹(如果存在)并开始新的下载。

timeout : (可选,默认为 60) 连接超时秒数。

进一步参考: https : //pypi.org/project/bing-image-downloader/

另一种下载任意数量图像的简单方法:-

pip 安装 simple_image_download

从 simple_image_download 导入 simple_image_download 作为 simp

response = simp.simple_image_download response().download(a, b)

其中 a= 要下载的主题字符串 B= 要下载的图像数量

如果您想为每个查询字符串下载少于 100 张图片, google-images-download会比bing-images-downloader更好。 它可以更好地处理错误,而且,您知道,Google 图片提供的结果比 Bing 等价物要好得多。

但是,如果您尝试下载超过 100 张图片, google-images-downloader会让您头疼。 正如在这个答案中提到的,谷歌改变了他们的结局,因此回购有很多失败(关于情况状态的更多信息在这里)。

因此,如果您想下载数千张图片,请使用bing-image-downloader

从 pip 安装包

pip install bing-image-downloader

运行查询。

注意:文档似乎不正确,因为它在from bing_image_downloader import downloader导入包时返回“未找到模块”错误(如本答案所述)。 导入它并像这样使用它:

from bing_image_downloader.downloader import download

query_string = 'muscle cars'

download(query_string, limit=1000,  output_dir='dataset', adult_filter_off=True, force_replace=False, timeout=60, verbose=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM