繁体   English   中英

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

[英]urllib doesn't give me correct filetype

我正在使用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(“ 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]

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM