下载图片时无法捕获 urllib 404 错误

Unable to catch urllib 404 Error when downloading images

运行 python 3 使用此代码,我终生无法捕获此 404 错误。如果未找到图像,则 urllib.error.HTTPError: HTTP Error 404: Not Founddl_image = urllib.request.urlretrieve(cam_url, "thumbnail" + str(1 + img_num[0]) + ".jpg"):

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]

错误发生在

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

只需将 try 语句放在该行之前