java Selenium模拟访问
1、引入依赖
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.14.0</version>
</dependency>
2、示例代码
    /**
     * @author chen xing
     * @description 执行浏览器的模拟访问
     * @param sleepTime 停顿的时间
     * @param executeTime 执行的次数
     * @param graphlessMode 开启无图模式操作
     * @return void
     * @date 2023-06-16 13:38
     */
    private void startEdge(Integer sleepTime, Integer executeTime, boolean graphlessMode)
            throws InterruptedException {
        ChromeOptions options = new ChromeOptions(); // 创建浏览器参数
        // 设置从ChromeDriver中获取属性(处理反爬机制)
        // 设置谷歌浏览器用户数据目录
        // 执行无图浏览器的操作
        if (graphlessMode) {
            options.addArguments("--headless");
        }
        options.addArguments("--disable-gpu");
        options.addArguments("start-maximized");
        options.addArguments("enable-automation");
        options.addArguments("--no-sandbox");
        options.addArguments("--disable-infobars");
        options.addArguments("--disable-dev-shm-usage");
        options.addArguments("--disable-browser-side-navigation");
        // 设置 Chrome driver 的路径
        System.setProperty("webdriver.chrome.driver", "E:\\chenxing\\tools\\chromedriver.exe");
        // 初始化 Chrome driver
        WebDriver driver = new ChromeDriver(options);
        String url = getStartPage();
        // 打开网页
        driver.get(url);
        for (int m = 0; m < executeTime; m++) {
            TimeUnit.SECONDS.sleep(sleepTime);
            WebElement webElement = driver.findElement(By.cssSelector("body"));
            webElement.click(); // 有的时候必须点击一下,下拉才能生效(有的网站是这样,原因未找到)
            for (int i = 0; i < 5; i++) {
                webElement.sendKeys(Keys.PAGE_DOWN);
                TimeUnit.SECONDS.sleep(3);
            }
            WebElement element =
                    driver.findElement(By.className("line-container")).findElement(By.tagName("a"));
            Actions actions = new Actions(driver);
            actions.moveToElement(element).click().perform();
        }
        // 关闭浏览器
        driver.quit();
    }
3、开启无图模式
ChromeOptions options = new ChromeOptions(); // 创建浏览器参数
options.addArguments("--headless");
4、鼠标移动到指定位置并点击
 WebElement element =
                    driver.findElement(By.className("line-container")).findElement(By.tagName("a"));
            Actions actions = new Actions(driver);
            actions.moveToElement(element).click().perform();
5、模拟鼠标滚动
WebElement webElement = driver.findElement(By.cssSelector("body"));
webElement.click(); // 有的时候必须点击一下,下拉才能生效(有的网站是这样,原因未找到)
webElement.sendKeys(Keys.PAGE_DOWN);
js触发模式
//将页面滚动条拖到底部
((JavascriptExecutor)driver).executeScript("window.scrollTo(0,document.body.scrollHeight)");
//移动到元素element对象的“顶端”与当前窗口的“顶部”对齐
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();",wm );
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);",wm );
//移动到元素element对象的“底端”与当前窗口的“底部”对齐
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(false);", wm);
                    正文到此结束