From 2a70997a6c3fcefcbc9b505c77b249f2c1a440c7 Mon Sep 17 00:00:00 2001 From: 2Shirt <2xShirt@gmail.com> Date: Thu, 10 Mar 2022 15:36:58 -0700 Subject: [PATCH] Use sessions in requests when downloading files --- scripts/wk/kit/tools.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/scripts/wk/kit/tools.py b/scripts/wk/kit/tools.py index b80cd3bb..781d14d6 100644 --- a/scripts/wk/kit/tools.py +++ b/scripts/wk/kit/tools.py @@ -17,6 +17,12 @@ from wk.std import GenericError # STATIC VARIABLES ARCH = '64' if platform.architecture()[0] == '64bit' else '32' LOG = logging.getLogger(__name__) +HEADERS = { + 'User-Agent': ( + 'Mozilla/5.0 (X11; Linux x86_64; rv:97.0) ' + 'Gecko/20100101 Firefox/97.0' + ), + } # "GLOBAL" VARIABLES @@ -42,13 +48,14 @@ def download_file(out_path, source_url, as_new=False, overwrite=False): out_path.parent.mkdir(parents=True, exist_ok=True) # Request download - try: - response = requests.get(source_url, stream=True) - except requests.RequestException as _err: - download_failed = _err - else: - if not response.ok: - download_failed = response + with requests.Session() as session: + try: + response = session.get(source_url, headers=HEADERS, stream=True) + except requests.RequestException as _err: + download_failed = _err + else: + if not response.ok: + download_failed = response # Download failed if download_failed: