我正在尝试下载大量图片,并且大多数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或删除错误,但是我不想这样做。这是因为我的脚本会先找到网址,然后请求下载,但无法清除该网址以删除错误的网址。
答案 0 :(得分:0)
您要使用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:
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