我正在尝试使用python 3.5和请求从openi(https://openi.nlm.nih.gov/index.php)下载图像。我正在使用他们的rest API,如下所示:
resp = requests.get("http://openi.nlm.nih.gov/retrieve.php",
params = {"query":"Feulgen", "m": 1, "n": 12})
print(resp.content)
这给了我一个json文件,其中包含我想要的图像的文本信息(包括他们的.png文件名),但我真的想自己下载图像。
我是否必须根据JSON中列出的特定网址下载每个图片,或者是否有办法进行某种批量下载"对于此查询中出现的图像?
我看到this post关于使用请求下载图片,但似乎我需要.png或.jpeg或.whatever网址。有没有人知道如何在没有单独图像URL的情况下获取图像?
提前致谢。
答案 0 :(得分:1)
是的,只需通过并保存!
import requests, pprint
resp = requests.get("http://openi.nlm.nih.gov/retrieve.php",
params = {"query":"Feulgen", "m": 1, "n": 12})
for i in resp.json()['list']:
#pprint.pprint(i)
pprint.pprint(i['imgLarge'])
img = requests.get('http://openi.nlm.nih.gov/'+i['imgLarge'])
if img.status_code == 200:
with open("/tmp/"+img.url.split("/")[-1], 'wb') as f:
f.write(img.content)