2017-05-26 3 views
0

Je veux utiliser python pour télécharger l'image dans le répertoire local par son URL. Mon chemin est d'utiliser le paquet "urllib2" à télécharger. Le code estNe pas télécharger l'image par URL avec Python

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() 

je réussissais dans la plupart des urls, mais pour une URL, même si je ne ai pas avec plus de secondes de délai.

Quelques exemples de ces urls ne « étranges »:

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

je « essayer » et « excpet » pour obtenir le excpetion. essayer: télécharger (URL, nom de fichier) sauf exception, e: print Exception ':', e

Il existe plusieurs types d'erreurs:

<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 

j'ai essayé d'autres outils de téléchargement, mais ils n'ont pas travaillé non plus. Mais quand j'essaie d'utiliser un navigateur comme Chrome ou Safari, les images sont bien chargées.

Quelqu'un peut-il m'aider avec ceci?

+0

selon les exceptions, on dirait que vous obtenez des problèmes de réseau ou la fin à distance ont des problèmes. J'ai essayé de les télécharger en utilisant des demandes et cela fonctionne à partir de mon emplacement. – jnvilo

Répondre

0
imgRequest = urllib2.Request(imgUrl, headers=headers) 
imgData = urllib2.urlopen(imgRequest).read()) 

mais d'une manière plus convinient serait d'utiliser urllib.urlretrieve

import urllib 
urllib.urlretrieve("http://www.image.com/00000001.jpg", "00000001.jpg")