Skip to main content

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.

Source Distribution

requests_download-0.1.2.tar.gz (2.9 kB view hashes)

Uploaded Source

Built Distribution

requests_download-0.1.2-py2.py3-none-any.whl (5.5 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page