在 python 个 Http 请求上呈现 reCaptcha

Rendering reCaptcha on python Http Requests

我不太确定如何使用 HTTP 请求的响应来显示小部件。

问题是,当我在 http link 中请求 GET 时,它 returns 一个 html 响应; 但是当我尝试渲染小部件所在的 html 部分时,pywebview 会抛出类似

的错误

A Server error occurred. Please contact the administrator.

Or it shows the values of the html's tag not the html webview itself

参考代码:

def handle_captcha(sess, request, ua):
    http_response = sess.get(request, headers=ua)
    http_show_captcha = BeautifulSoup(http_response.text, 'html.parser')
    print("hellos")
    window = webview.create_window('Captcha', http_show_captcha.find('div' , attrs={"class" : "checkpoint__wrapper content"}).text)
    webview.start()

本程序的流程是通过http请求访问网站->手动解验证码->获取验证码响应->目标页面

我的问题是,是否有任何 python 框架可以呈现 HTTP 响应,尤其是 reCaptcha Widget? 或者处理这个问题的最佳方法是什么? 以及如何将会话存储在 webview 的响应中,或者如何访问从 http 请求生成的上一个会话?

如果您偶然发现了这个问题。我已经在一周前解决了这个问题。

我使用的解决方案是 运行 使用 Pywebview 的自定义 JS 脚本:

Question #1 Is there any python framework that renders HTTP response especially the Captcha widget?

答:必须自己做。

Question #2 What's the best way to handle this problem?

答案:获取小部件的位置,然后手动将其加载到 webview。然后使用 JS 获取 payload: window.evaluate_js("document.querySelector('#g-recaptcha-response').value")

Question #3 How can I store the session to webview response?

答:不能。但也许您可以使用 pywebview 的 API.

注入会话

Question #4 How can I access the previous session that was generated from HTTP Request.

答案:这与问题#3 几乎相同。也许我们可以手动获取会话然后将其存储到 pywebview 的 API.

希望有人帮忙。