如何跳过死掉的 link 并进入下一个?

How to skip a dead link and move onto the next?

我正在尝试让一个程序运行,我可以在其中输入图像 URL 列表并将它们自动下载到一个文件夹中。当批次中某处有一个死的 link 时,就会出现问题。显然,我不想进去手动删除 1000 多个死的 link,所以我只想 "skip" 超过它们。

这是我目前的情况:

import pandas as pd
import urllib.request
import time

def url_to_jpg(i, url, file_path):
    filename = 'image-{}.jpg'.format(i)
    full_path = '{}{}'.format(file_path, filename)
    urllib.request.urlretrieve(url, full_path)
    print('{} saved.'.format(filename))
    return None


FILENAME = 'images.csv'
FILE_PATH = 'images/'


urls = pd.read_csv(FILENAME)

while True:
    try:
        for i, url in enumerate(urls.values):
            url_to_jpg(i, url[0], FILE_PATH);
    except urllib.error.HTTPError:
        continue
        break

我只是一个初学者,检查异常的最后一部分是我学到的最远的部分。

抱歉代码乱七八糟,我只是匆忙,没有时间。

如果您有空,请替换此代码:

while True:
    try:
        for i, url in enumerate(urls.values):
            url_to_jpg(i, url[0], FILE_PATH);
    except urllib.error.HTTPError:
        continue
        break

与:

for i, url in enumerate(urls.values):
    try:
        url_to_jpg(i, url[0], FILE_PATH);
    except urllib.error.HTTPError:
        continue

请注意,在 continue 语句后跟一个 break 语句处于相同的缩进级别是没有意义的,因为 continue 会导致程序流跳回到循环的顶部。你的 while True: 循环实际上并没有做任何事情,除了阻止你的程序退出。