Python请求-自动查询

Python请求-自动查询,python,selenium,python-requests,recaptcha,Python,Selenium,Python Requests,Recaptcha,在过去的几天里,我一直在尝试编写一个脚本来登录一个帐户并获取数据,但我无法让它登录,我总是遇到以下错误消息: 您的计算机或网络可能正在发送自动查询。保护 我们的用户,我们现在无法处理您的请求 我假设这是ReCaptcha v2提供的错误消息,我使用的是ReCaptcha服务,但我甚至在没有或有代理的情况下在本地计算机上收到此错误消息 我尝试过不同的代理,不同的代理源,头,用户代理,似乎什么都不起作用。我使用了请求,但仍然收到此错误消息,Selenium仍然收到此错误消息,我自己的浏览器仍然收到此

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

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

我假设这是ReCaptcha v2提供的错误消息,我使用的是ReCaptcha服务,但我甚至在没有或有代理的情况下在本地计算机上收到此错误消息

我尝试过不同的代理,不同的代理源,头,用户代理,似乎什么都不起作用。我使用了请求,但仍然收到此错误消息,Selenium仍然收到此错误消息,我自己的浏览器仍然收到此错误消息


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

因此,我根据自己在网络抓取方面的一般经验来写这个答案

不同的web应用程序在不同的条件下做出不同的反应,我在这里给出的解决方案可能无法完全解决您的问题

以下是一些变通方法:

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

我知道这会大大降低您的工作速度,但Recaptcha是专门用来防止此类自动查询/刮取的工具。

窗口大小
用户代理
非常完美。用户代理
Mozilla 5.0
兼容和Chrome浏览器
>60.0 UA
是否有充分理由?有任何文档吗?@DebanjanB,当你用过时的浏览器提出后续请求时,你会看到一些应用程序会发出警告,“请将浏览器升级到最新版本的Firefox/Chrome以继续”,这不是很明显需要重新启动吗?嗯,值得思考:)