我想使用python通过其url将图像下载到本地目录。 我的方法是使用“urllib2”包下载。代码是
def download(url, filename):
f = open(filename, "wb")
headers = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}
req = urllib2.Request(url=url, headers=headers)
f.write(urllib2.urlopen(req, timeout=10).read())
f.close()
我在大多数网址中取得了成功,但是对于某些网址,即使有超时秒数,我仍然失败了。
这些“奇怪”网址的一些失败例子:
https://s-media-cache-ak0.pinimg.com/736x/c0/95/5d/c0955d6d0ffe6145924d4e7d252cde4e.jpg https://smhttp-ssl-33667.nexcesscdn.net/manual/wp-content/uploads/2016/10/navy-suit-blue-shirt-men-look.jpg http://1.bp.blogspot.com/ExAqpPuUKM4/Uzq6mXbda2I/AAAAAAAAEL4/c_xgff8HMNU/s1600/1890361_801417276554561_1726056762_o.jpg
我用“尝试”和“激怒”来获得激动。 尝试: 下载(url,文件名) 除了例外,e: 打印例外,':',e
有几种错误:
<type 'exceptions.Exception'> : <urlopen error [Errno 65] No route to host>
<type 'exceptions.Exception'> : [Errno 54] Connection reset by peer
<type 'exceptions.Exception'> : timed out
我尝试了其他下载工具,但它们也没有用。但是当我尝试使用Chrome或Safari这样的浏览器时,图像装载得很好。
任何人都可以帮我吗?
答案 0 :(得分:0)
imgRequest = urllib2.Request(imgUrl, headers=headers)
imgData = urllib2.urlopen(imgRequest).read())
但更方便的方法是使用urllib.urlretrieve
import urllib
urllib.urlretrieve("http://www.image.com/00000001.jpg", "00000001.jpg")