java 在哪些Selenium方法之后我应该添加随机睡眠?

gudnpqoy  于 2023-10-14  发布在  Java
关注(0)|答案(1)|浏览(88)

我对制作机器人还很陌生。
我正在为this网站的Selenium Java机器人工作;它类似于Reddit,用户可以提问,其他用户可以回答。
我一直在手动收集我想要分析的问题列表(数千个),成功后,我想点击页面中的某些按钮。我将这些功能添加到我的机器人中,所以我不必再这样做了,但我担心网站“认为”我有恶意意图。
我的机器人大量使用WebElement#findElementsWebElement#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);
        }
    }
}

问题是现在我的机器人永远运行...

jdg4fx2g

jdg4fx2g1#

从我的经验与网页抓取,我通常会做1.0-5.0秒之间。它是1.0-5.0而不是1-5的原因是因为程序将在这些时间之间选择一个随机的浮点时间,它们很少会完全相等。这给了它一个更人性化的暂停,因为人类不能停止滚动或什么正好1秒,然后恢复他们正在做的事情,所以最好让随机睡眠时间成为浮点变量而不是整数。希望能帮上忙!

相关问题