从 Python 中的 google-images-download 结果中检索图像 URL

Vic*_*ina 2 url python-3.x

有没有办法从 google-images-downloadhttps://github.com/hardikvasa/google-images-download)下载的图像中检索图像 URL?

这是一些示例代码:

from google_images_download import google_images_download 

response = google_images_download.googleimagesdownload()   #class instantiation

arguments = {"keywords"     : 'stackoverflow',
             "limit"        : 3,
             "print_urls"   : True,
             "size"         : ">2MP",
             }
paths = response.download(arguments)
Run Code Online (Sandbox Code Playgroud)

它打印:

项目编号:1 --> 项目名称 = stackoverflow 正在评估...开始下载... 图片 URL: https: //media.wired.com/photos/5926db217034dc5f91becd6b/master/w_1904,c_limit/so-logo-s。 jpg 完成图片 ====> 1. so-logo-s.jpg 图片网址: https: //kaggle2.blob.core.windows.net/datasets-images/152/327/43994ab64328703c9e656b04e6769947/dataset-original.jpg 完成图片 ====> 2. dataset-original.jpg 图片 URL: https://i.stack.imgur.com/alOyI.png完整图片 ====> 3. aloyi.png

错误:0

paths 变量方便地存储下载文件的路径,我也想存储文件来自的 URL,但文档提供的唯一选项是打印它。是否有隐藏的方法来检索 URL,或者我可以捕获打印输出吗?

Vic*_*ina 6

我已经成功了。可能不是最干净的解决方案,但它确实有效。

from google_images_download import google_images_download 
import sys

orig_stdout = sys.stdout
f = open('URLS.txt', 'w')
sys.stdout = f

response = google_images_download.googleimagesdownload()

arguments = {"keywords"     : 'stackoverflow',
             "limit"        : 3,
             "print_urls"   : True,
             "size"         : ">2MP",
             }
paths = response.download(arguments)

sys.stdout = orig_stdout
f.close()

with open('URLS.txt') as f:
    content = f.readlines()
f.close()

urls = []
for j in range(len(content)):
    if content[j][:9] == 'Completed':
        urls.append(content[j-1][11:-1])   
print(urls)
Run Code Online (Sandbox Code Playgroud)