使用python各种方法下载数据

本文介绍了使用Python进行数据下载的方法,包括初始的request库实现,带有断点续传的request库改进,以及wget库的使用。重点讨论了断点续传功能的实现和wget命令行工具的优势,同时提到了多线程下载的可能性。
摘要由CSDN通过智能技术生成

python下载数据的各种方法

上一篇我写了怎么去网站取爬取一些下载链接,还有一些自己写的python程序,主要用了request 和 urllib.request 等库,不过发现使用这些下载文件有些问题,例如不能断点传,不好下大文件,没有进度界面,没有校验等等,只适合下数量少的小文件,今天我发现有两个有用的工具来下载。

我一开始写的下载代码


import requests
import time
import urllib.request
import os
Timeout = 200 #单次超时设定
url="https://"#下载链接
File_name = url.rsplit('/', 1)[-1]

def formatFloat(num):#输出统一格式
    return '{:.3f}'.format(num)
    
def Download_point_to_point(name,url,Timeout):
    #download File, name=File, url=download address,TIMEOUT是超时时间,并返回下载状态
    try:
        r1 = requests.get(url, stream=True, verify=False)
        total_size = int(r1.headers['Content-Length'])
    except Exception as e:
        error_type = e.__class__.__name__
        print ('error type is:', error_type)#查看异常名称
        if error_type == 'MissingSchema':
            return 'link_error'
        if error_type == 'ConnectionError' or error_type == 'ReadTimeout':
            return 'Timeout'  
    if os.path.exists(name):
        temp_size = os.path.getsize(name)  # 本地已经下载的文件大小
    else:
        temp_size = 0

    if temp_size == total_size:#文件大小相等
        print (name+' has successful download'+ '文件大小检查')
        return 'successful'
    i = 0      
    headers = {
   'Proxy-Connection':'keep-alive'}
    while i < 3: #尝试三次
        try:
            r = requests.get(url,timeout=Timeout,stream=True, headers=headers)#TIMEOUT 设置超时
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值