最新消息:20210917 已从crifan.com换到crifan.org

【未解决】python中用urllib2.urlopen打开一张gif图片,但是返回的内容类型是Content-Type: text/plain

Python crifan 2802浏览 0评论

【未解决】python中用urllib2.urlopen打开一张gif图片,但是返回的内容类型是Content-Type: text/plain

【背景】

python脚本中,调用urllib2.urlopen去打开:

http://img.blog.163.com/photo/uyUYCQHPC_5lNW2touIrEw==/904942050125077111.gif

http://img.blog.163.com/photo/Su6Ri4VmIftHwCCNxG5JFA==/3694359069327649935.gif

但是两张图片的返回的内容,都是text/plain类型:

代码如下:

<p>ret_picUrl = urllib2.urlopen(picUrl) # note: Python 2.6 has added timeout support.<br />print "picUrl=",picUrl<br />realUrl = ret_picUrl.geturl()<br />print "realUrl=",realUrl<br />urlInfo = ret_picUrl.info()<br />contentLen = urlInfo['Content-Length']<br /># eg: Content-Type= image/gif<br /># more ContentTypes can refer: <a rel="nofollow" href="http://kenya.bokee.com/3200033.html">http://kenya.bokee.com/3200033.html</a><br />contentType = urlInfo['Content-Type']<br />print "urlInfo=",urlInfo </p>
输出为:
<table border="1" cellspacing="1" cellpadding="1" width="80%"><tbody><tr><td><p><font size="2">&nbsp;picUrl= </font><a href="http://img.blog.163.com/photo/uyUYCQHPC_5lNW2touIrEw==/904942050125077111.gif"><font size="2">http://img.blog.163.com/photo/uyUYCQHPC_5lNW2touIrEw==/904942050125077111.gif</font></a><br /><font size="2">realUrl= </font><a href="http://img.blog.163.com/photo/uyUYCQHPC_5lNW2touIrEw==/904942050125077111.gif"><font size="2">http://img.blog.163.com/photo/uyUYCQHPC_5lNW2touIrEw==/904942050125077111.gif</font></a><br /><font size="2">urlInfo= Server: nginx<br />Date: Mon, 02 Jan 2012 14:18:43 GMT<br /><strong><font color="#0000ff">Content-Type: text/plain</font></strong><br />Connection: close<br />Vary: Accept-Encoding<br />Last-Modified: Sat, 23 Oct 2010 07:53:21 GMT<br />Accept-Ranges: bytes<br />Content-Length: 585</font></p><p><font size="2">picUrl= </font><a href="http://img.blog.163.com/photo/Su6Ri4VmIftHwCCNxG5JFA==/3694359069327649935.gif"><font size="2">http://img.blog.163.com/photo/Su6Ri4VmIftHwCCNxG5JFA==/3694359069327649935.gif</font></a><br /><font size="2">realUrl= </font><a href="http://img.blog.163.com/photo/Su6Ri4VmIftHwCCNxG5JFA==/3694359069327649935.gif"><font size="2">http://img.blog.163.com/photo/Su6Ri4VmIftHwCCNxG5JFA==/3694359069327649935.gif</font></a><br /><font size="2">urlInfo= Server: nginx<br />Date: Mon, 02 Jan 2012 14:18:44 GMT<br /><strong><font color="#0000ff">Content-Type: text/plain</font></strong><br />Connection: close<br />Vary: Accept-Encoding<br />Last-Modified: Wed, 16 Feb 2011 13:54:03 GMT<br />Accept-Ranges: bytes<br />Content-Length: 588</font></p></td></tr></tbody></table>
&nbsp;很奇怪的是,gif图片本身是可以正常显示的,但是不知道为何不是返回的 img/gif类型,却是text/plain类型。
【解决过程】
1.网上搜了一通,没找到有人遇到这类问题的。暂时无解。

2.尝试了一下,将gif地址改为txt后缀:

http://img.blog.163.com/photo/Su6Ri4VmIftHwCCNxG5JFA==/3694359069327649935.txt

再打开试试,结果下载下来对应的txt文件,内容为:

【未解决】python中用urllib2.urlopen打开一张gif图片,但是返回的内容类型是Content-Type: text/plain - crifan - work and job

 可以看到最开始是gif的头。

但是txt的地址,证明是可以打开的。

3. 而且又去下载了:

http://img.blog.163.com/photo/Su6Ri4VmIftHwCCNxG5JFA==/3694359069327649935.gif

然后比较了两者的内容,发现也是一样的:

【未解决】python中用urllib2.urlopen打开一张gif图片,但是返回的内容类型是Content-Type: text/plain - crifan - work and job

 这说明,此张gif图片,如果以txt的方式去访问,也是完全可以的。

但是很奇怪的是,为何打开别的图片的地址,返回的信息,都是正确的img/jpg,唯独此张gif图片,不返回img/gif,而返回text/plain呢。

很是让人无语。

转载请注明:在路上 » 【未解决】python中用urllib2.urlopen打开一张gif图片,但是返回的内容类型是Content-Type: text/plain

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 用C#实际测试,虽然返回的Content-Type为plan/text但是图片能正常显示
    MagicSong9年前 (2014-12-17)回复
102 queries in 0.208 seconds, using 23.40MB memory