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



我使用urllib python模块从外部URL获取图像。它工作得很好,但有一些图像给我这样的问题:https://cdn.tutsplus.com/wp/uploads/2014/01/grunt -商标- 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]。输入它给我:"text/html"

所以文件类型不正确。

有解决方案吗?

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

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

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")
现在它打印文件类型为"image/png"

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

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

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

相关内容

  • 没有找到相关文章

最新更新