【问题标题】:What is the proper CSS selector to get what I need?什么是正确的 CSS 选择器来获得我需要的东西?
【发布时间】:2013-10-24 13:44:08
【问题描述】:

我正在使用 Java 库 (JSoup) 从网站获取我的程序可以摄取然后处理的内容。具体来说,我要查找的内容在下面的ontw div 内:

<div class="ms5">
    <div class="header">
        <!-- ... -->
    </div>
    <div class="body">
        <div class="ontw">
            <!-- What I want is here -->
        </div>
    </div>
</div>

使用 JSoup,您可以使用 Document doc = JSoup.connect("http://www.example.com").get() 下载页面,然后使用 doc.select("Your CSS selector string here."); 解析该页面的内容。就是这么简单。

我试过了:

doc.select("ms5 body ontw");

但这不起作用。从上面的 HTML 来看,我的 CSS 选择器字符串应该是什么?提前致谢!

【问题讨论】:

    标签: java css css-selectors jsoup


    【解决方案1】:
    .ms5 .body .ontw
    

    是你想要的。这是一个演示:http://try.jsoup.org/~jAMCqcMjLMSA5FYJV7Cn3Aah4AE

    【讨论】:

      【解决方案2】:
      doc.select("div.ontw");
      

      会是我所期望的

      【讨论】:

      • 避免使用过多的选择器。
      【解决方案3】:
      Element masthead = doc.select("div.ontw").first();// div with class=ontw
      

      您可以参考 JSoup 文档:

      http://jsoup.org/cookbook/extracting-data/selector-syntax

      【讨论】:

        【解决方案4】:

        类是用点选择的,所以你必须选择.md5 .body .ontw

        doc.select(".md5 .body .ontw");
        

        【讨论】:

        • 感谢@BackSlash (+1) - 我是否正确地假设如果我刚刚做到了doc.select(".ontw"),我可以撤回 any 装饰有的 HTML 元素.ontw 类,不一定是我想要的.ontw 内容(在ms5/body 下)?
        • @TicketMonster 不客气!是的,你是对的,选择具有指定类的 any 元素,不管它的容器是什么
        猜你喜欢
        • 1970-01-01
        • 2015-06-12
        • 2014-11-20
        • 1970-01-01
        • 2011-05-28
        • 1970-01-01
        • 2020-02-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多