resolve redirects after solving Cloudflare challanges
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user