resolve redirects after solving Cloudflare challanges
This commit is contained in:
@@ -64,23 +64,26 @@ def solve_challenge(session, response, kwargs):
|
|||||||
params[name] = value
|
params[name] = value
|
||||||
|
|
||||||
time.sleep(4)
|
time.sleep(4)
|
||||||
|
|
||||||
cf_kwargs["allow_redirects"] = False
|
|
||||||
cf_response = session.request("POST", url, **cf_kwargs)
|
cf_response = session.request("POST", url, **cf_kwargs)
|
||||||
|
|
||||||
|
if cf_response.history:
|
||||||
|
initial_response = cf_response.history[0]
|
||||||
|
else:
|
||||||
|
initial_response = cf_response
|
||||||
|
|
||||||
cookies = {
|
cookies = {
|
||||||
cookie.name: cookie.value
|
cookie.name: cookie.value
|
||||||
for cookie in cf_response.cookies
|
for cookie in initial_response.cookies
|
||||||
}
|
}
|
||||||
|
|
||||||
if not cookies:
|
if not cookies:
|
||||||
import logging
|
import logging
|
||||||
log = logging.getLogger("cloudflare")
|
log = logging.getLogger("cloudflare")
|
||||||
log.debug("Headers:\n%s", cf_response.headers)
|
log.debug("Headers:\n%s", initial_response.headers)
|
||||||
log.debug("Content:\n%s", cf_response.text)
|
log.debug("Content:\n%s", initial_response.text)
|
||||||
return cf_response, None, None
|
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", "")
|
cookies["__cfduid"] = response.cookies.get("__cfduid", "")
|
||||||
return cf_response, domain, cookies
|
return cf_response, domain, cookies
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user