diff options
| author | 2020-07-20 01:03:23 -0400 | |
|---|---|---|
| committer | 2020-07-20 01:03:23 -0400 | |
| commit | ba039cfb2e1ba2522ee0a0fa2a84a1a6579e4877 (patch) | |
| tree | 2e057b8e83968c7ab951b1b60aa16b71682f5414 /gallery_dl/cloudflare.py | |
| parent | 02dd2886783cd303cff6890a741152d013bb00ce (diff) | |
New upstream version 1.14.3.upstream/1.14.3
Diffstat (limited to 'gallery_dl/cloudflare.py')
| -rw-r--r-- | gallery_dl/cloudflare.py | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/gallery_dl/cloudflare.py b/gallery_dl/cloudflare.py index 88068d5..0f49d61 100644 --- a/gallery_dl/cloudflare.py +++ b/gallery_dl/cloudflare.py @@ -32,23 +32,11 @@ def solve_challenge(session, response, kwargs): """Solve Cloudflare challenge and get cfclearance cookie""" parsed = urllib.parse.urlsplit(response.url) root = parsed.scheme + "://" + parsed.netloc - page = response.text - try: - params = {"ray": text.extract(page, '?ray=', '"')[0]} - - url = root + "/cdn-cgi/images/trace/jschal/nojs/transparent.gif" - session.request("GET", url, params=params) - - url = root + "/cdn-cgi/images/trace/jschal/js/nocookie/transparent.gif" - session.request("GET", url, params=params) - except Exception: - pass cf_kwargs = {} headers = cf_kwargs["headers"] = collections.OrderedDict() params = cf_kwargs["data"] = collections.OrderedDict() - url = root + text.unescape(text.extract(page, 'action="', '"')[0]) headers["Referer"] = response.url form = text.extract(page, 'id="challenge-form"', '</form>')[0] @@ -58,12 +46,27 @@ def solve_challenge(session, response, kwargs): if not name: continue if name == "jschl_answer": - value = solve_js_challenge(page, parsed.netloc) + try: + value = solve_js_challenge(page, parsed.netloc) + except Exception: + return response, None, None else: value = element.attrib.get("value") params[name] = value + try: + params = {"ray": text.extract(page, '?ray=', '"')[0]} + + url = root + "/cdn-cgi/images/trace/jschal/nojs/transparent.gif" + session.request("GET", url, params=params) + + url = root + "/cdn-cgi/images/trace/jschal/js/nocookie/transparent.gif" + session.request("GET", url, params=params) + except Exception: + pass + time.sleep(4) + url = root + text.unescape(text.extract(page, 'action="', '"')[0]) cf_response = session.request("POST", url, **cf_kwargs) if cf_response.history: |
