有没有办法从 google-images-download
( https://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)
它打印:
Item no.: 1 --> Item name = stackoverflow Evaluating... Starting Download... Image URL: https://media.wired.com/photos/5926db217034dc5f91becd6b/master/w_1904,c_limit/so-logo-s.jpg Completed Image ====> 1. so-logo-s.jpg Image URL: https://kaggle2.blob.core.windows.net/datasets-images/152/327/43994ab64328703c9e656b04e6769947/dataset-original.jpg Completed Image ====> 2. dataset-original.jpg Image URL: https://i.sstatic.net/alOyI.png Completed Image ====> 3. aloyi.png
Errors: 0
paths 变量方便地存储下载文件的路径,我也想存储文件来自的 URL,但文档提供的唯一选项是打印它。是否有隐藏的方法来检索 URL,或者我可以捕获打印输出吗?
最佳答案
我成功了。可能不是最干净的解决方案,但它确实有效。
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)
关于python-3.x - 在 Python 中从 google-images-download 结果中检索图像 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53052322/