是否可以从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)
(https://github.com/hardikvasa/google-images-download)下载的图像中检索图像URL?
下面是一些示例代码:
main_op
它会打印:
项目号:1->项目名称= stackoverflow评估中...开始 下载...图片网址: 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. 2.dataset-original.jpg图片网址: https://i.stack.imgur.com/alOyI.png完成的图片====> 3. aloyi.png
错误:0
paths变量方便地存储了下载文件的路径,我也想存储文件来自的URL,但是文档提供的唯一选择是打印它。是否有隐藏的方法来检索URL,还是可以捕获打印的输出?
答案 0 :(得分:1)
我成功了。可能不是最干净的解决方案,但它可以工作。
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)
答案 1 :(得分:0)
从@Vicky Christina的答案中脱颖而出,这是一个避免中间写入文件的Python 3解决方案:
from io import BytesIO, TextIOWrapper
from google_images_download import google_images_download
import sys
old_stdout = sys.stdout
sys.stdout = TextIOWrapper(BytesIO(), sys.stdout.encoding)
response = google_images_download.googleimagesdownload()
arguments = {
"keywords": "stackoverflow",
"limit": 3,
"print_urls": True,
"size": "large",
}
paths = response.download(arguments)
sys.stdout.seek(0)
output = sys.stdout.read()
sys.stdout.close()
sys.stdout = old_stdout
for line in output.split("\n"):
if line.startswith("Image URL:"):
print(line.replace("Image URL: ", ""))
答案 2 :(得分:-1)
在实践中实现一个好的解决方案是非常困难的。 这就是我们构建SerpAPI.com的原因!
这是一项网络服务,可以搜索Google图片并返回干净的json。它与大多数编程语言集成:python,php,java,golang,nodejs ...
https://serpapi.com/images-results
Google限制每天的搜索次数。但是此服务可提供无限搜索...