使用python直接通过url从imgur下载文件

时间:2012-10-15 21:02:33

标签: python bash imgur

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

我如何在python或bash中实现这一目标?

4 个答案:

答案 0 :(得分:6)

您应该使用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)

答案 1 :(得分:2)

我刚尝试访问以下网址:

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

答案 2 :(得分:2)

我以前用过这个来下载大量的xkcd webcomics,它似乎也适用于this

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

希望这有帮助

答案 3 :(得分:0)

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

<img alt="" src="http://i.imgur.com/rqCqA.jpg" original-title="">