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

Hos*_*ein 27 python delay

我写了一个程序,它向超过15个查询,谷歌在每次迭代中,总迭代次数约50为了测试我要运行这个程序几次.然而,通过这样做,谷歌几次阻止我.有没有什么办法让我可以通过在每次迭代之间添加延迟来欺骗谷歌?此外,我听说谷歌实际上可以学习时间步.所以我需要这些延迟是随机的,所以谷歌找不到它的模式来了解我的行为.它也应该很短,所以整个过程不需要这么多.有谁知道,或者可以在python中为我提供一段代码?谢谢

nmi*_*els 86

首先,谷歌可能会阻止你,因为当你占用太多资源时他们不喜欢它.解决此问题的最佳方法是减慢速度,而不是随意延迟.每次请求后等待1秒钟,你可能会停止出现问题.

那说:

from random import randint
from time import sleep

sleep(randint(10,100))
Run Code Online (Sandbox Code Playgroud)

将睡眠随机数秒(10到100之间).

  • 我用过`random.random.uniform(1, 3)`,谷歌似乎很满意 (4认同)
  • 有两种想法,在每个查询之后插入1秒的等待时间将使运行时间增加12分钟多一点。在每个查询之后平均插入50秒的等待时间将增加10个小时以上。即使进行测试,也可能很麻烦。 (2认同)
  • jball:是的,'sleep`可以使用浮点数,因此数字可以调整.就个人而言,我更喜欢其他答案作为解决这一特定问题的方法,但这为那些可能希望在将来插入随机延迟的人提出了问题. (2认同)

Har*_*vey 8

最好使用:

from numpy import random
from time import sleep

sleeptime = random.uniform(2, 4)
print("sleeping for:", sleeptime, "seconds")
sleep(sleeptime)
print("sleeping is over")
Run Code Online (Sandbox Code Playgroud)

作为开始,然后慢慢减小范围,看看什么效果最好(最快)。