improve parameter extraction when solving Cloudflare challenge
This commit is contained in:
@@ -39,12 +39,16 @@ def solve_challenge(session, response, kwargs):
|
|||||||
|
|
||||||
page = response.text
|
page = response.text
|
||||||
url = root + text.unescape(text.extract(page, 'action="', '"')[0])
|
url = root + text.unescape(text.extract(page, 'action="', '"')[0])
|
||||||
params["r"] = text.extract(page, 'name="r" value="', '"')[0]
|
|
||||||
params["jschl_vc"] = text.extract(page, 'name="jschl_vc" value="', '"')[0]
|
|
||||||
params["pass"] = text.extract(page, 'name="pass" value="', '"')[0]
|
|
||||||
params["jschl_answer"] = solve_js_challenge(page, parsed.netloc)
|
|
||||||
headers["Referer"] = response.url
|
headers["Referer"] = response.url
|
||||||
|
|
||||||
|
for inpt in text.extract_iter(page, "<input ", ">"):
|
||||||
|
name = text.extract(inpt, 'name="', '"')[0]
|
||||||
|
if name == "jschl_answer":
|
||||||
|
value = solve_js_challenge(page, parsed.netloc)
|
||||||
|
else:
|
||||||
|
value = text.unescape(text.extract(inpt, 'value="', '"')[0])
|
||||||
|
params[name] = value
|
||||||
|
|
||||||
time.sleep(4)
|
time.sleep(4)
|
||||||
|
|
||||||
cf_kwargs["allow_redirects"] = False
|
cf_kwargs["allow_redirects"] = False
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2015-2019 Mike Fährmann
|
# Copyright 2015-2020 Mike Fährmann
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License version 2 as
|
# it under the terms of the GNU General Public License version 2 as
|
||||||
@@ -126,7 +126,7 @@ class KissmangaChapterExtractor(KissmangaBase, ChapterExtractor):
|
|||||||
(aes.aes_cbc_decrypt_text(
|
(aes.aes_cbc_decrypt_text(
|
||||||
data, key, iv).partition("&")[0], None)
|
data, key, iv).partition("&")[0], None)
|
||||||
for data in text.extract_iter(
|
for data in text.extract_iter(
|
||||||
page, 'lstImages.push(wrapKA("', '"'
|
page, 'push(wrapKA("', '"'
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
except UnicodeDecodeError:
|
except UnicodeDecodeError:
|
||||||
|
|||||||
Reference in New Issue
Block a user