【问题标题】:Java Html parser to extract specific data?Java Html解析器提取特定数据?
【发布时间】:2012-08-11 20:16:32
【问题描述】:

我有一个类似下面的 html 文件

...
<span itemprop="A">234</span>
...
<span itemprop="B">690</span>
...

在此我想将值提取为 A 和 B。
你能推荐任何可以轻松做到这一点的 java html 解析器库吗?

【问题讨论】:

    标签: java html-parsing web-scraping


    【解决方案1】:

    就个人而言,我更喜欢 JSoup 而不是 JTidy。它有类似 CSS 的 selectors,而且文档要好得多,恕我直言。使用 JSoup,您可以使用以下几行轻松提取这些值:

    Document doc = Jsoup.connect("your_url").get();
    Elements spans = doc.select("span[itemprop]");
    
    for (Element span : spans) {
      System.out.println(span.text()); // will print 234 and 690
    }
    

    【讨论】:

    • 我不想提取 A 和 B,而是提取其他值 234 和 690
    • @vivek_jonam:然后改用text(),它给你span的内容。我已经编辑了我的答案。
    • 好的。作品。但是我可以单独获得 A 和 B 的值吗?还有其他 itemprop 值,例如 A1、C、E 等。
    • 是的,有两种方法可以做到这一点。 1)当你遍历每个span元素时,你可以检查span.attr("itemprop")是否等于AB; 2)您可以运行两个选择,一个使用span[itemprop=A],另一个使用span[itemprop=B]
    【解决方案2】:

    JTidy 是一个名称混乱但受人尊敬的 HTML 解析器。

    【讨论】:

      【解决方案3】:

      http://jsoup.org/

      JSoup 是要走的路。

      【讨论】:

        猜你喜欢
        • 2013-05-22
        • 2011-12-16
        • 1970-01-01
        • 2011-02-06
        • 2018-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-30
        • 2017-05-18
        相关资源
        最近更新 更多