Py学习  »  Python

文件下载中的python unknow urltype valuerror image

mamuncode • 4 年前 • 330 次点击  

我正在尝试下载一个巨大的图片,大多数的网址都是空白的,并且是错误类型。

当我运行脚本时,它下载图像,但当它看到错误的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或删除错误的URL,但我不想这样做。这是因为我的脚本将找到URL,然后请求下载,没有办法清除URL以删除错误的URL。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38222
 
330 次点击  
文章 [ 2 ]  |  最新文章 4 年前
latish
Reply   •   1 楼
latish    5 年前

异常处理是您需要的。使用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
Jack Moody
Reply   •   2 楼
Jack Moody    5 年前

你想用一个 try except 如下图所示。这将尝试从您的URL下载图像,如果它无法下载,那么它将继续运行,就像什么都没有发生一样。

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