如何在发送到Google的查询之间添加随机延迟,以避免在python中被阻塞

如何在发送到Google的查询之间添加随机延迟,以避免在python中被阻塞,python,delay,Python,Delay,我写了一个程序,在每次迭代中向Google发送超过15个查询,总迭代次数约为50次。为了进行测试,我必须运行这个程序几次。然而,通过这样做,在几次之后,谷歌阻止了我。有没有什么方法可以让我在每次迭代之间增加延迟来愚弄谷歌?我还听说谷歌实际上可以学习时间步。所以我需要这些延迟是随机的,这样谷歌就无法从中找到模式来了解我的行为。而且它应该很短,这样整个过程就不会花那么多时间。 有人知道些什么吗,或者能给我一段python代码吗? 首先,谷歌可能会阻止你,因为他们不喜欢你占用他们太多的资源。解决这个问

我写了一个程序,在每次迭代中向Google发送超过15个查询,总迭代次数约为50次。为了进行测试,我必须运行这个程序几次。然而,通过这样做,在几次之后,谷歌阻止了我。有没有什么方法可以让我在每次迭代之间增加延迟来愚弄谷歌?我还听说谷歌实际上可以学习时间步。所以我需要这些延迟是随机的,这样谷歌就无法从中找到模式来了解我的行为。而且它应该很短,这样整个过程就不会花那么多时间。 有人知道些什么吗,或者能给我一段python代码吗?
首先,谷歌可能会阻止你,因为他们不喜欢你占用他们太多的资源。解决这个问题的最好方法是放慢速度,而不是随机延迟。在每次请求后等待1秒钟,您可能就不会有问题了

也就是说:

from random import randint
from time import sleep

sleep(randint(10,100))

睡眠时间为随机数秒(10到100之间)。

既然你不是在测试谷歌的速度,那就想办法在测试时模拟它(正如@bstpier在评论中所建议的那样)。这将解决您的问题,并同时考虑其可变响应超时。

您还可以尝试使用少量代理服务器来防止IP地址的禁止。urllib通过特殊构造函数参数支持代理,httplib也可以使用代理

from numpy import random
from time import sleep

sleeptime = random.uniform(2, 4)
print("sleeping for:", sleeptime, "seconds")
sleep(sleeptime)
print("sleeping is over")

作为一个开始,你可以很容易地看到什么最有效(最快)。

你在做什么,你需要在短时间内用超过750个请求来击败谷歌?你有什么方法可以批量处理请求以发送更少的请求吗?没有,我已经开发了一个QA系统。我需要递增的结果,这就是为什么我必须一个接一个地发送查询。如果你想愚弄谷歌,你一定是疯了,即使有人在这里给你答案,谷歌机器人也会在你之前得到答案:),而你说这只是为了测试,为什么不在休息或其他情况下测试一两个查询???,但我会给你一个提示谷歌阻止你的IPI知道,请看下面的答案;)如果您正在测试其他系统,您最好创建一个模拟google,它将以SUT期望的结果进行响应。考虑一下,在每个查询后插入1秒的等待将使运行时间增加12分钟多一点。在每次查询后插入平均50秒的等待时间将增加10个多小时。这可能会很繁重,即使对于测试也是如此。jball:True,并且
sleep
可以使用浮点数,因此可以调整数字。就我个人而言,我更喜欢其他答案作为这个特定问题的解决方案,但这回答了那些可能希望在将来插入随机延迟的人的问题。我们能让它保持0.5秒吗lol昨天我没有添加延迟,我被禁止使用谷歌一段时间。我使用了
random.random.uniform(1,3)
和谷歌似乎很满意