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

使用Jsoup解析含span标签的HTML并获取赛事比分的技术咨询

用Jsoup解析赛事网站并获取比分的实现思路

我来帮你梳理下完整的实现步骤和思路,结合你给出的代码拆解说明:

核心步骤拆解

  • 第一步:引入Jsoup依赖
    首先得确保你的项目里已经添加了Jsoup的依赖,这样才能使用它的HTML解析能力。
    比如Maven项目可以在pom.xml中添加:

    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.17.2</version> <!-- 建议使用最新稳定版本 -->
    </dependency>
    

    Gradle项目则在build.gradle里配置:

    implementation 'org.jsoup:jsoup:1.17.2'
    
  • 第二步:发起HTTP请求获取页面文档
    你的代码里这部分已经写得很清楚了:

    Document b = Jsoup.connect("https://www.flashscore.ro/meci/CpNbKtrI/#sumar-meci")
                      .timeout(6000) // 设置6秒超时,避免请求长时间挂起无响应
                      .get();
    

    这一步的作用是:通过Jsoup的connect()方法建立与目标网站的HTTP连接,发送GET请求拿到页面的静态HTML内容,最后封装成Document对象,方便后续的解析操作。

  • 第三步:用CSS选择器定位比分元素
    这是获取比分的关键步骤,需要精准定位到存放比分的HTML元素:

    String test2 = b.select("div.event_detail_current_result").text();
    
    • select("div.event_detail_current_result"):通过CSS选择器定位到class为event_detail_current_result的div元素,这个就是页面上承载实时比分的容器。
    • .text():提取该元素内部的纯文本内容,也就是我们最终要的比分数据。
  • 第四步:输出或处理比分结果
    最后把获取到的比分打印出来:

    System.out.println("This : " + test2);
    

    这里也可以根据实际需求,改成将比分存储到数据库、展示到前端页面等其他操作。

额外注意事项

  • 网站结构变更风险:这类体育赛事网站的页面结构可能会不定期调整,如果之后发现获取不到比分,要重新检查页面的HTML结构,更新对应的CSS选择器。
  • 反爬机制应对:部分网站会拦截无标识的请求,建议在请求时添加User-Agent头,模拟浏览器的正常请求:
    Document b = Jsoup.connect("https://www.flashscore.ro/meci/CpNbKtrI/#sumar-meci")
                      .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
                      .timeout(6000)
                      .get();
    
  • 动态内容处理:如果比分是通过JavaScript动态加载的,Jsoup就无法直接获取到(因为Jsoup只能解析静态HTML),这时候可能需要搭配Selenium等工具来处理动态渲染的页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:29:33