python unknow urltype valuError文件下载中的图像

时间:2019-03-16 15:06:44

标签: python

我正在尝试下载大量图片,并且大多数url为空白和错误类型。

当我运行脚本时,它将下载图像,但是当看到错误的URL类型时,脚本将停止。我想要它,以便脚本在看到错误的URL或空白URL时不会停止,因此可以跳过错误的URL并转到下一个URL。

以下是错误的网址和代码的示例:

import wget

urls = ['https://www.1000-annonces.com/appartement-a-louer-a-cote-hotel-solazur-IMGH1552740173_img20190316wa00061.jpg',
       'https://www.1000-annonces.com/proche-ouarzazate-vends-kasbah-maison-d-hotes-IMGH1376736359_piscine__chauffee.jpg',
       'badurl.jpeeg'
       'https://www.1000-annonces.com/bel-appartement-en-bord-de-mer-IMGH1541404860_img20180826wa0065.jpg',
       'https://www.1000-annonces.com/appartement-a-louer-a-cote-hotel-solazur-IMGH1552740173_img20190316wa00061.jpg',
       ]

for url in urls:
    wget.download(url)

您可能会建议清除URL或删除错误,但是我不想这样做。这是因为我的脚本会先找到网址,然后请求下载,但无法清除该网址以删除错误的网址。

2 个答案:

答案 0 :(得分:0)

您要使用tryexcept块,如下所示。这将尝试从您的网址下载图片,如果无法下载,则它将继续进行,好像什么都没发生。

import wget
import urllib

urls = ['https://www.1000-annonces.com/appartement-a-louer-a-cote-hotel-solazur-IMGH1552740173_img20190316wa00061.jpg',
       'https://www.1000-annonces.com/proche-ouarzazate-vends-kasbah-maison-d-hotes-IMGH1376736359_piscine__chauffee.jpg',
       'badurl.jpeeg'
       'https://www.1000-annonces.com/bel-appartement-en-bord-de-mer-IMGH1541404860_img20180826wa0065.jpg',
       'https://www.1000-annonces.com/appartement-a-louer-a-cote-hotel-solazur-IMGH1552740173_img20190316wa00061.jpg',
       ]

for url in urls:
    try:
        wget.download(url)
    except urllib.error.URLError:
        continue

答案 1 :(得分:0)

您正在寻找异常处理。使用try和except块。控制流程是这样的,只要try块中引发异常,控制就会立即转到except块。因此,您对代码的修改将是

import wget
import urllib

urls = ['https://www.1000-annonces.com/appartement-a-louer-a-cote-hotel-solazur-IMGH1552740173_img20190316wa00061.jpg',
       'https://www.1000-annonces.com/proche-ouarzazate-vends-kasbah-maison-d-hotes-IMGH1376736359_piscine__chauffee.jpg',
       'badurl.jpeeg'
       'https://www.1000-annonces.com/bel-appartement-en-bord-de-mer-IMGH1541404860_img20180826wa0065.jpg',
       'https://www.1000-annonces.com/appartement-a-louer-a-cote-hotel-solazur-IMGH1552740173_img20190316wa00061.jpg',
       ]

for url in urls:
    try:
        wget.download(url)
    except urllib.error.URLError:
        pass // exception handling code goes here