从URL下载GIF图片时出错 Python
我想把这个gif图片下载到我的电脑上:
http://www.portaportese.it/telefono/es_2014043024395.gif
我用过很多下载图片的代码,但最后保存下来的图片总是出错,比如:
GIF图片被截断或不完整。
简单来说,就是图片没有正确保存下来。
有没有人能提供一个正确的方法,让我可以把这个图片下载到电脑上?
我用的代码返回的都是空白图片.. 我试过这个:
import urllib2
picture_page = "http://www.portaportese.it/telefono/es_2014043024395.gif"
opener1 = urllib2.build_opener()
page1 = opener1.open(picture_page)
my_picture = page1.read()
filename = "my_image.gif"
fout = open(filename, "wb")
fout.write(my_picture)
fout.close()
1 个回答
0
问题不在于你的Python代码,而是你想下载的图片根本不存在。如果我用curl这个工具去请求那个网址,你会发现那里没有存储任何图片。
~ ❯❯❯ curl -I http://www.portaportese.it/telefono/es_2014043024395.gif
HTTP/1.1 200 OK
Date: Mon, 07 Jul 2014 19:35:05 GMT
Server: Apache/2.2.3 (Red Hat)
Connection: close
Content-Type: text/plain; charset=UTF-8
再对比一下这个请求,它是从一个已知的图片来源获取的:
~ ❯❯❯ curl -I http://baconmockup.com/300/200
HTTP/1.1 200 OK
Date: Mon, 07 Jul 2014 19:35:42 GMT
Server: Apache/2.4.7 (Ubuntu)
X-Powered-By: PHP/5.5.9-1ubuntu4.2
Access-Control-Allow-Origin: *
Content-Length: 20564
Content-Disposition: inline; filename=brisket-300-200.jpg
Pragma: public
Cache-Control: public
Expires: Mon, 21 Jul 2014 19:35:43 GMT
Last-Modified: Mon, 20 Aug 2012 19:20:21 GMT
Vary: User-Agent
Content-Type: image/jpeg
如果你把代码里的网址换成一个有效的图片来源,那么它就能正常工作了。
import urllib2
picture_page = "http://baconmockup.com/300/200"
opener1 = urllib2.build_opener()
page1 = opener1.open(picture_page)
my_picture = page1.read()
filename = "my_image.gif"
fout = open(filename, "wb")
fout.write(my_picture)
fout.close()
我刚刚试了一下,得到了一个美味的牛胸肉的图片。