Merge pull request #1277 from paulromano/download-as-browser

Add option in download() to appear as browser
This commit is contained in:
Amanda Lund 2019-07-08 15:29:03 -05:00 committed by GitHub
commit e05dec4234
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2,12 +2,12 @@ import hashlib
import os.path
from pathlib import Path
from urllib.parse import urlparse
from urllib.request import urlopen
from urllib.request import urlopen, Request
_BLOCK_SIZE = 16384
def download(url, checksum=None, **kwargs):
def download(url, checksum=None, as_browser=False, **kwargs):
"""Download file from a URL
Parameters
@ -16,7 +16,10 @@ def download(url, checksum=None, **kwargs):
URL from which to download
checksum : str or None
MD5 checksum to check against
Keyword arguments passed to :func:urllib.request.urlopen
as_browser : bool
Change User-Agent header to appear as a browser
kwargs : dict
Keyword arguments passed to :func:urllib.request.urlopen
Returns
-------
@ -24,7 +27,11 @@ def download(url, checksum=None, **kwargs):
Name of file written locally
"""
req = urlopen(url, **kwargs)
if as_browser:
page = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
else:
page = url
req = urlopen(page, **kwargs)
# Get file size from header
file_size = req.length