如何在Python中为发送到Google的查询添加随机延迟以避免被封锁
我写了一个程序,每次运行时会向谷歌发送超过15个查询,总共大约会运行50次。为了测试,我需要多次运行这个程序。但是,经过几次后,谷歌就会把我封锁。有办法让我“骗”一下谷歌吗?比如在每次运行之间加一些延迟?我还听说谷歌其实可以学习这些时间间隔,所以我需要这些延迟是随机的,这样谷歌就无法找到我的行为模式。同时,这些延迟也要短一点,这样整个过程就不会花太多时间。有没有人知道怎么做,或者能给我一段Python代码?
5 个回答
4
因为你不是在测试谷歌的速度,所以想办法在测试的时候模拟一下谷歌的速度(就像@bstpierre在评论中提到的)。这样可以解决你的问题,同时也能把它的响应时间变化因素考虑进去。
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")
作为开始,然后慢慢减少范围,看看哪个效果最好(最快)。
176
首先,谷歌可能在屏蔽你,因为他们不喜欢你占用他们太多的资源。解决这个问题的最好办法就是放慢速度,而不是随意延迟。在每次请求后加上1秒的等待时间,这样你可能就不会再遇到问题了。
话说回来:
from random import randint
from time import sleep
sleep(randint(10,100))
这个代码会随机等待10到100秒之间的时间。