2

有时,指向 imgur 的链接没有给出文件扩展名。例如:http://imgur.com/rqCqA。我想下载文件并给它一个已知的名称或在更大的代码中获取它的名称。问题是我不知道文件类型,所以我不知道给它什么扩展名。

如何在 python 或 bash 中实现这一点?

4

4 回答 4

8

您应该使用Imgur JSON API。这是 Python 中的一个示例,使用requests

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)
于 2012-10-15T21:18:20.133 回答
4

我以前用它来下载大量的 xkcd 网络漫画,它似乎也适用于此

def saveImage(url, fpath):
    contents = urllib2.urlopen(url)
    f = open(fpath, 'w')
    f.write(contents.read())
    f.close()

希望这可以帮助

于 2012-10-15T21:22:27.497 回答
3

我刚刚尝试访问以下 URL:

他们都工作了。似乎 Imgur 存储了几种类型的相同图像 - 你可以选择。

于 2012-10-15T21:07:00.043 回答
0

您可以使用 BeautifulSoup 或类似工具解析页面的源代码,并在 src 中查找带有照片哈希的 img 标签。以你的例子,图片是

<img alt="" src="http://i.imgur.com/rqCqA.jpg" original-title="">
于 2012-10-15T21:05:34.040 回答