【问题标题】:Python requests - Automated queriesPython 请求 - 自动查询
【发布时间】:2019-02-20 16:22:38
【问题描述】:

最近几天我一直在尝试编写一个登录帐户并获取数据的脚本,但我无法让它登录,并且总是遇到以下错误消息:

您的计算机或网络可能正在发送自动查询。保护 我们的用户,我们现在无法处理您的请求。

我认为这是 ReCaptcha v2 提供的错误消息,我正在使用 ReCaptcha 服务,但我什至在没有或使用代理的情况下在本地机器上收到此错误消息。

我尝试了不同的代理、不同的代理源、标头、用户代理,但似乎没有任何效果。我使用了请求,但仍然收到此错误消息,Selenium 仍然收到此错误消息,我自己的浏览器仍然收到此错误消息。

有什么解决方法可以防止这种情况发生?

【问题讨论】:

    标签: python selenium python-requests recaptcha


    【解决方案1】:

    所以我根据我对网络抓取的一般经验来写这个答案。

    不同的web应用在不同的条件下会有不同的反应,我这里给出的解决方案可能无法完全解决你的问题。

    以下是一些解决方法:

    • 仅使用 selenium 并设置适当的窗口屏幕大小。大多数现代 Web 应用程序根据窗口大小和用户代理来识别用户。在您的情况下,不建议使用其他解决方案,例如不允许正确处理窗口大小的请求。
    • 使用现代有效的用户代理 (Mozilla 5.0 compatible)。通常,Chrome 浏览器 > 60.0 UA 即可。
    • 在每个 xxx 请求间隔内保持链接和更改代理(取决于您的工作负载)。
    • 为特定代理使用单个用户代理。如果您的 UA 针对特定 IP 不断变化,Recaptcha 会自动抓取您。
    • 正确处理cookies。确保服务器设置的 cookie 与后续请求一起发送(针对单个代理)。
    • 使用请求之间的时间间隔。使用time.sleep() 延迟连续请求。通常延迟 2 秒就足够了。

    我知道这会大大减慢您的工作速度,但 Recaptcha 是专门用于防止此类自动查询/抓取的东西。

    【讨论】:

    • window sizeuser agent 非常完美。 user agent Mozilla 5.0 兼容和 Chrome 浏览器 > 60.0 UA 有什么充分的理由吗?有什么文件吗?
    • @DebanjanB,当您使用过时的浏览器发出后续请求时,您会看到一些应用程序响应警告“请将浏览器升级到最新版本的 Firefox/Chrome 以继续”,不是提一个 Recaptcha 很明显吗?
    • 嗯,发人深省:)
    猜你喜欢
    • 2017-10-18
    • 2022-10-05
    • 2017-03-18
    • 2015-06-22
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多