Python URLRetrieve Limit Rate and Resume Partial Download

前端 未结 1 1815
醉话见心
醉话见心 2020-12-20 02:58

I\'m using the code from this thread to limit my download rate.

How do I incorporate partial downloads resuming with the rate limiting code? The examples I\'ve fo

相关标签:
1条回答
  • 2020-12-20 03:15

    May be able to use PyCurl instead:

    def curl_progress(total, existing, upload_t, upload_d):
        try:
            frac = float(existing)/float(total)
        except:
            frac = 0
        print "Downloaded %d/%d (%0.2f%%)" % (existing, total, frac)
    
    def curl_limit_rate(url, filename, rate_limit):
        """Rate limit in bytes"""
        import pycurl
        c = pycurl.Curl()
        c.setopt(c.URL, url)
        c.setopt(c.MAX_RECV_SPEED_LARGE, rate_limit)
        if os.path.exists(filename):
            file_id = open(filename, "ab")
            c.setopt(c.RESUME_FROM, os.path.getsize(filename))
        else:
            file_id = open(filename, "wb")
    
        c.setopt(c.WRITEDATA, file_id)
        c.setopt(c.NOPROGRESS, 0)
        c.setopt(c.PROGRESSFUNCTION, curl_progress)
        c.perform()
    
    0 讨论(0)
提交回复
热议问题