[英]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.