2016-10-02 2 views
-1

Running Python 3 mit diesem Code, ich kann nicht für das Leben von mir diesen Fehler 404 zu fangen. Wenn ein Bild nicht gefunden wird, wird urllib.error.HTTPError: HTTP Error 404: Not Found bei dl_image = urllib.request.urlretrieve(cam_url, "thumbnail" + str(1 + img_num[0]) + ".jpg") angehoben:Kann Urlib nicht fangen 404 Fehler beim Herunterladen von Bildern

import requests 
# import json 
# import re 
import random 
import urllib 
def random_cam(img_num=[0]): 
    cam_url = url + camera_IDs[img_num[0]] + trailing_url 
    dl_image = urllib.request.urlretrieve(cam_url, "thumbnail" + str(1 + img_num[0]) + ".jpg") 
    if img_num == [0]: # makes sure to only shuffle camera order once to avoid duplicate camera thumbnails 
     random.shuffle(camera_rand) 
    try: 
     dl_image 
    except urllib.error.HTTPError: 
     print ("image not found or camera is offline") 
     img_num[0] += 2 # skip over index that throws an error and download next image in line 
     dl_image 
    else: 
     print (cam_url) 
     img_num[0] += 1 
     return img_num[0] 
+0

Können Sie die Zurückverfolgungs posten? – WildCard

+0

Der Fehler wird bei 'dl_image = urllib.request.urlretrieve (cam_url," thumbnail "+ str (1 + img_num [0]) +" .jpg ") ausgelöst:' Setzen Sie die Anweisung 'try' vor diese Zeile. – JRodDynamite

+0

@JRodDynamite Das war es! Ich habe mich selbst über den Kopf geschlagen, als die Lösung direkt vor mir war, eine Antwort posten und ich werde es akzeptieren. –

Antwort

1

Der Fehler bei

dl_image = urllib.request.urlretrieve(cam_url, "thumbnail" + str(1 + img_num[0]) + ".jpg") 

angehoben wird, wird einfach die try Anweisung vor dieser Zeile