Skip to main content
Help the Python Software Foundation raise $60,000 USD by December 31st!  Building the PSF Q4 Fundraiser

Download files using requests and save them to a target path

Project description

A convenient function to download to a file using requests.

Basic usage:

url = "https://github.com/takluyver/requests_download/archive/master.zip"
download(url, "requests_download.zip")

An optional headers= parameter is passed through to requests.

Trackers are a lightweight way to monitor the data being downloaded. Two trackers are included:

  • ProgressTracker - displays a progress bar, using the progressbar2 package.
  • HashTracker - wraps a hashlib object to calculate a hash (e.g. sha256 or md5) of the file as you download it.

Here’s an example of using both of them:

import hashlib
# progressbar is provided by progressbar2 on PYPI.
from progressbar import DataTransferBar
from requests_download import download, HashTracker, ProgressTracker

hasher = HashTracker(hashlib.sha256())
progress = ProgressTracker(DataTransferBar())

download('https://github.com/takluyver/requests_download/archive/master.zip',
         'requests_download.zip', trackers=(hasher, progress))

assert hasher.hashobj.hexdigest() == '...'

To make your own tracker, subclass TrackerBase and define any of these methods:

from requests_download import TrackerBase

class MyTracker(TrackerBase):
    def on_start(self, response):
        """Called with requests.Response object, which has response headers"""
        pass

    def on_chunk(self, chunk):
        """Called multiple times, with bytestrings of data received"""
        pass

    def on_finish(self):
        """Called when the download has completed"""
        pass

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for requests_download, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size requests_download-0.1.2-py2.py3-none-any.whl (5.5 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size requests_download-0.1.2.tar.gz (2.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page