【问题标题】:Rendering reCaptcha on python Http Requests在 python Http Requests 上渲染 reCaptcha
【发布时间】:2020-07-08 07:31:39
【问题描述】:

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

问题是当我在 http 链接中请求 GET 并返回一个 html 响应时; 但是当我尝试渲染小部件所在位置的 html 部分时,pywebview 会抛出类似

的错误

发生服务器错误。请联系管理员。

或者它显示html标签的值而不是html webview本身

参考代码:

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 小部件? 或者处理这个问题的最佳方法是什么? 以及如何将会话存储在 webview 的响应中,或者如何访问从 http 请求生成的上一个会话?

【问题讨论】:

  • @bigbounty 你把我的问题弄错了。我不想绕过验证码。我正在尝试在 python 的 gui(pywebview) 上手动渲染它,以便用户可以自己解决它。

标签: python web python-requests recaptcha pywebview


【解决方案1】:

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

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

问题 #1 是否有任何 Python 框架可以呈现 HTTP 响应,尤其是 Captcha 小部件?

答案:你必须自己做。

问题 #2 处理此问题的最佳方法是什么?

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

问题 #3 如何将会话存储到 webview 响应?

回答:你不能。但也许您可以使用 pywebview 的 API 注入会话。

问题 #4 如何访问从 HTTP 请求生成的上一个会话。

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

希望任何人对此有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多