python通过urllib.urlretrieve下载文件时设置超时的方法

2022-05-01 00:00:00 文件 设置 超时

通过urllib.urlretrieve方法下载文件非常方便,但是如果中间出现网络中断的情况,urlretrieve函数会一直在那下载,实际上什么也没下载下来,导致整个程序锁死,所以最好给它设置一个超时(timeout)时间,这个函数本身没有实现超时的功能,所以只能设置全局的socket超时,我们可以在调用urllib.urlretrieve之前设置一个默认的超时时间,比如30秒

"""
皮蛋编程(https://www.pidancode.com)
创建日期:2022/4/1
功能描述:python通过urllib.urlretrieve下载文件时设置超时的方法
"""
import urllib.request
import socket

socket.setdefaulttimeout(30)
url = 'https://www.pidancode.com'
save_file = './pidancode.com.html'
urllib.request.urlretrieve(url, save_file)

代码在python3.9环境下测试通过,可以将https://www.pidancode.com 主页的html代码下在到本地文件。

相关文章