python通过urllib.urlretrieve下载文件时设置超时的方法
通过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代码下在到本地文件。
相关文章