【未解决】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"> 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>
很奇怪的是,gif图片本身是可以正常显示的,但是不知道为何不是返回的 img/gif类型,却是text/plain类型。
【解决过程】
1.网上搜了一通,没找到有人遇到这类问题的。暂时无解。
2.尝试了一下,将gif地址改为txt后缀:
http://img.blog.163.com/photo/Su6Ri4VmIftHwCCNxG5JFA==/3694359069327649935.txt
再打开试试,结果下载下来对应的txt文件,内容为:
可以看到最开始是gif的头。
但是txt的地址,证明是可以打开的。
3. 而且又去下载了:
http://img.blog.163.com/photo/Su6Ri4VmIftHwCCNxG5JFA==/3694359069327649935.gif
然后比较了两者的内容,发现也是一样的:
这说明,此张gif图片,如果以txt的方式去访问,也是完全可以的。
但是很奇怪的是,为何打开别的图片的地址,返回的信息,都是正确的img/jpg,唯独此张gif图片,不返回img/gif,而返回text/plain呢。
很是让人无语。
转载请注明:在路上 » 【未解决】python中用urllib2.urlopen打开一张gif图片,但是返回的内容类型是Content-Type: text/plain