【问题标题】:a loop that run until url dosnt exist or dont respond一直运行到 url 不存在或不响应的循环
【发布时间】:2021-10-17 12:40:56
【问题描述】:

嘿,我正在做一个项目,该项目正在从 url 下载图像而不知道有多少,它们都有相同的 url,但数字会发生变化,例如 www.url000.png www.url0001.png 等等我想创建一个循环下载所有的 png 文件,直到没有更多的文件然后它停止在这里是我的下载代码感谢您的帮助(这里的第一个问题顺便说一句,如果它太长,很抱歉)

count = 1
fnum = str()
if len(str(count)) == 1:
    fnum = '00000' + str(count)
elif len(str(count)) == 2:
    fnum = '0000' + str(count)
elif len(str(count)) == 3:
    fnum = '000' + str(count)
else:
    print('error')

os.chdir(fullpath)
urllib.request.urlretrieve(url + fnum + extention, str(count) + extention)
print('Downloading ' + str(count))
count = count + 1

【问题讨论】:

  • 看起来 (a) 你需要一个循环,并且 (b) 你需要处理 urlretrieve 引发的异常。您可以找到许多使用urlretrieve 的代码示例,包括here on stackoverflow

标签: python python-3.x loops web-scraping


【解决方案1】:

您可以使用 requests 包中的内置状态代码来检查给定 url 的有效性。

代码:

url_status = result.status_code  # creates status code variable
print("Status Code: {}".format(url_status))
if url_status >= 200 and url_status < 300:
# successful status codes for http begin with 2--
    print("Link is valid")
else:
    print("Error with the link")

是一个条件,用于在我尝试从链接中抓取之前确保链接有效。

另外,你的问题很好。一点也不长。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-20
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 2018-02-28
    相关资源
    最近更新 更多