From 1489712325b85d68de272dd302cedaa7025f88c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Wed, 10 Jun 2020 21:14:57 +0200 Subject: [PATCH] resolve redirects after solving Cloudflare challanges --- gallery_dl/cloudflare.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/gallery_dl/cloudflare.py b/gallery_dl/cloudflare.py index 857b4f31..88068d54 100644 --- a/gallery_dl/cloudflare.py +++ b/gallery_dl/cloudflare.py @@ -64,23 +64,26 @@ def solve_challenge(session, response, kwargs): params[name] = value time.sleep(4) - - cf_kwargs["allow_redirects"] = False cf_response = session.request("POST", url, **cf_kwargs) + if cf_response.history: + initial_response = cf_response.history[0] + else: + initial_response = cf_response + cookies = { cookie.name: cookie.value - for cookie in cf_response.cookies + for cookie in initial_response.cookies } if not cookies: import logging log = logging.getLogger("cloudflare") - log.debug("Headers:\n%s", cf_response.headers) - log.debug("Content:\n%s", cf_response.text) + log.debug("Headers:\n%s", initial_response.headers) + log.debug("Content:\n%s", initial_response.text) return cf_response, None, None - domain = next(iter(cf_response.cookies)).domain + domain = next(iter(initial_response.cookies)).domain cookies["__cfduid"] = response.cookies.get("__cfduid", "") return cf_response, domain, cookies