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

Java Jsoup获取指定类链接无输出问题求助

问题:Jsoup无法匹配指定类的链接,无输出

你的代码没有输出的核心原因是CSS选择器写法错误:原代码里的a[href].ssrcss-6m4230-PromoLink e1f5wbog1会被Jsoup解析为“先选中带有href属性且拥有ssrcss-6m4230-PromoLink类的a标签,然后选中它们的后代元素中带有e1f5wbog1类的元素”,但你的HTML里e1f5wbog1是a标签本身的第二个class,并不是后代元素的类,所以匹配不到任何元素。

修正方案

把多个class用.连接,正确的选择器写法如下:

Elements links = document.select("a[href].ssrcss-6m4230-PromoLink.e1f5wbog1"); 

完整修正后的代码

import java.io.IOException;
import org.jsoup.Jsoup;  
import org.jsoup.nodes.Document;  
import org.jsoup.nodes.Element;  
import org.jsoup.select.Elements;


public class Anyclass {

    public static void main(String[] args) throws IOException {
    
        String html = "<a href=\"/sport/golf/66227692\" class=\"ssrcss-6m4230-PromoLink e1f5wbog1\"><span role=\"text\"><p class=\"ssrcss-6arcww-PromoHeadline e1f5wbog6\"><span aria-hidden=\"false\">McIlroy's 'perfect preparation' for Hoylake Open</span></p></span></a>";
        Document document = Jsoup.parse(html);
        Elements links = document.select("a[href].ssrcss-6m4230-PromoLink.e1f5wbog1"); 
        for (Element link : links) {
            System.out.println("my beutiful link : " + link.attr("href")); 
        }
    }
}

补充说明

  • 当元素拥有多个class时,CSS选择器中要用.把多个class名连在一起,不能用空格(空格表示后代元素关系)
  • 也可以用属性选择器a[href][class="ssrcss-6m4230-PromoLink e1f5wbog1"],但这种写法要求class的顺序和内容完全匹配,灵活性不如多class选择器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 04:16:08