有时,指向imgur的链接不会以文件扩展名给出。例如:http://imgur.com/rqCqA
.我想下载文件并为其指定一个已知名称或在更大的代码中获取其名称。问题是我不知道文件类型,所以我不知道该给它什么扩展名。
如何在 python 或 bash 中实现这一点?
你应该使用 Imgur JSON API。下面是 Python 中的一个示例,使用请求:
import posixpath
import urllib.parse
import requests
url = "http://api.imgur.com/2/image/rqCqA.json"
r = requests.get(url)
img_url = r.json["image"]["links"]["original"]
fn = posixpath.basename(urllib.parse.urlsplit(img_url).path)
r = requests.get(img_url)
with open(fn, "wb") as f:
f.write(r.content)
我只是尝试转到以下 URL:
- https://i.stack.imgur.com/V7t3N.jpg
- https://i.stack.imgur.com/6ruBm.jpg
- https://i.stack.imgur.com/DUNjJ.jpg
他们都工作了。似乎Imgur存储了相同图像的几种类型 - 您可以选择。
我以前用过它来下载大量的 xkcd 网络漫画,它似乎也适用于此。
def saveImage(url, fpath):
contents = urllib2.urlopen(url)
f = open(fpath, 'w')
f.write(contents.read())
f.close()
希望这有帮助
您可以使用 BeautifulSoup 或类似方法解析页面的来源,并在 src 中查找带有照片哈希的 img 标签。以您的为例,图片是
<img alt="" src="http://i.imgur.com/rqCqA.jpg" original-title="">