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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

Details for the file requests_download-0.1.2.tar.gz.

File metadata

File hashes

Hashes for requests_download-0.1.2.tar.gz
Algorithm Hash digest
SHA256 92d895a6ca51ea51aa42bab864bddaee31b5601c7e7e1ade4c27b0eb6695d846
MD5 56f5163d97f6043056db89d314e83ad8
BLAKE2b-256 349d431a25538f158a3065a76a6311f40b7908f88a4d24efdbb0ca24f83bd614

See more details on using hashes here.

File details

Details for the file requests_download-0.1.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for requests_download-0.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 994d9d332befae6616f562769bab163f08d6404dc7e28fb7bfed4a0a43a754ad
MD5 55cfe46eb54086d21af217f408f4f6d5
BLAKE2b-256 ada648f0af75cc62dc0b57013820d76c453962dc9ba1fffcfe4381b810b691bb

See more details on using hashes here.

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