Python请求-自动查询

时间:2019-02-20 16:22:39

标签: python selenium python-requests recaptcha

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

  

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

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

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

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

1 个答案:

答案 0 :(得分:1)

因此,我是根据我对网络抓取的一般经验写的这个答案。

  

不同的Web应用程序在不同条件下的反应不同,我在这里提供的解决方案可能无法完全解决您的问题。

以下是有关方法的一些解决方法:

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

我知道这会大大降低您的工作速度,但是Recaptcha是为了防止此类自动查询/抓取而设计的。