我对制作机器人还很陌生。
我正在为this网站的Selenium Java机器人工作;它类似于Reddit,用户可以提问,其他用户可以回答。
我一直在手动收集我想要分析的问题列表(数千个),成功后,我想点击页面中的某些按钮。我将这些功能添加到我的机器人中,所以我不必再这样做了,但我担心网站“认为”我有恶意意图。
我的机器人大量使用WebElement#findElements
和WebElement#click
,我主要想知道我是否应该在每一个之后添加一个随机睡眠。
如果我应该,需要多长时间?
我应该只是使用这个util的一切?
public class Selenium
{
private static final WebDriver DRIVER = new ChromeDriver();
public static void execute(Consumer<WebDriver> action)
{
action.accept(DRIVER);
//sleep and rethrow any exceptions in order to stop the bot
try
{
TimeUnit.MILLISECONDS.sleep(1000 + ThreadLocalRandom().current().nextInt(3000));
}
catch(InterruptedException exception)
{
throw new RuntimeException(exception);
}
}
}
问题是现在我的机器人永远运行...
1条答案
按热度按时间jdg4fx2g1#
从我的经验与网页抓取,我通常会做1.0-5.0秒之间。它是1.0-5.0而不是1-5的原因是因为程序将在这些时间之间选择一个随机的浮点时间,它们很少会完全相等。这给了它一个更人性化的暂停,因为人类不能停止滚动或什么正好1秒,然后恢复他们正在做的事情,所以最好让随机睡眠时间成为浮点变量而不是整数。希望能帮上忙!