You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Java Selenium的JavascriptExecutor抓取页面内容出现省略号如何解决

问题根因
  • 反爬机制识别:博彩类站点普遍部署了反自动化检测规则,Selenium默认启动的浏览器存在大量可被识别的特征(比如webdriver属性、特定UA标识等),站点检测到后会返回截断的、带占位省略号的半加载页面。
  • 代码逻辑缺陷:你定义了自定义UA、FirefoxOptions配置,但初始化FirefoxDriver时没有传入options对象,所有配置完全未生效;同时路径未转义、缺少动态页面等待逻辑,页面还没完成异步渲染就开始提取内容,自然拿不到完整数据。
  • WEBGL警告不影响业务:控制台输出的WEBGL_debug_renderer_info弃用提示只是Firefox的API版本兼容警告,和内容获取失败无关联,无需单独处理。
修复后代码
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.By;
import java.time.Duration;
import java.util.concurrent.TimeUnit;

public class Main {
    public static void main(String[] args){
        FirefoxOptions options = new FirefoxOptions();
        // 自定义UA
        String userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 OPR/60.0.3255.170";
        // UA生效配置
        options.addPreference("general.useragent.override", userAgent);
        // 屏蔽Selenium自动化特征
        options.addPreference("dom.webdriver.enabled", false);
        options.addPreference("useAutomationExtension", false);
        options.addArguments("--disable-blink-features=AutomationControlled");
        // 注意Windows路径反斜杠要转义
        System.setProperty("webdriver.gecko.driver","C:\\Users\\dbondarenko\\IdeaProjects\\geckodriver.exe");
        // 初始化时传入配置好的options
        WebDriver driver = new FirefoxDriver(options);
        JavascriptExecutor js = (JavascriptExecutor)driver;

        String baseUrl = "https://parimatch.com/ru/events/romania-iceland-6764586";

        driver.get(baseUrl);
        driver.manage().window().maximize();

        // 替换为显式等待,等待页面核心赛事区块加载完成,超时时间15秒可自行调整
        WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(15));
        // 下方选择器可替换为页面实际存在的核心元素选择器
        wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".event-page")));

        String DomainName = js.executeScript("return document.domain;").toString();
        System.out.println("Domain name of the site = " + DomainName);

        String url = js.executeScript("return document.URL;").toString();
        System.out.println("URL of the site = " + url);

        String TitleName = js.executeScript("return document.title;").toString();
        System.out.println("Title of the page = " + TitleName);

        String innerText = js.executeScript(" return document.documentElement.innerText;").toString();
        System.out.println("Inner text of the page = " + innerText);

        js.executeScript("window.location = 'http://parimatch.com'");
        // 操作完成后关闭驱动
        driver.quit();
    }
}
额外排查建议
  • 如果调整后仍然返回不完整内容,可先调用截图方法保存页面截图,确认是否被站点跳转到人机验证页、IP封禁页,针对拦截场景再调整IP代理、Cookie携带等配置。
  • 若站点使用第三方防护服务,可尝试添加options.addArguments("--headless=new")启用无头模式,或升级geckodriver、Firefox到最新版本匹配站点的浏览器版本要求。

内容的提问来源于stack exchange,提问作者Dima Bondarenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:33:00