urllib没有给我正确的文件类型

时间:2014-03-31 00:56:10

标签: python image url urllib

我使用urllib python模块从外部URL获取图像。 它运作良好,但有一些图像给我这样的问题: https://cdn.tutsplus.com/wp/uploads/2014/01/grunt-logo-400.png

我的代码如下

import urllib
img = urllib.urlretrieve("https://cdn.tutsplus.com/wp/uploads/2014/01/grunt-logo-400.png")

当我打印img时,它告诉我: " /tmp/tmpbuhfUW.png"

但如果我打印img [1] .type它会给我: " text / html的"

所以文件类型不正确。

有没有解决方案?

PS:我检查了下载图像的/ tmp文件夹,我注意到图像是空白的。 PS2:我也尝试过urllib2.urlopen(&#34; cdn.tutsplus.com/wp/uploads/2014/01/grunt-logo-400.png")但它给了我错误403 < / p>

更新: 最后,我通过以下方式解决了这个问题:

class MyOpener(urllib.FancyURLopener):
    version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'

myopener = MyOpener()
i = myopener.retrieve("https://cdn.tutsplus.com/wp/uploads/2014/01/grunt-logo-400.png")

现在它将文件类型打印为&#34; image / png&#34;

1 个答案:

答案 0 :(得分:1)

据我所知,你没有做错任何事。 Urllib只是错误地猜测了mime类型。我不知道你到底想要做什么,但你可以说

filetype = img[0].split('.')[1]

检索文件类型,然后检查它是否包含在不同图像文件类型的数组中,以确定它是否是图像的链接。