通过JSOUP提取Element的数据

时间:2014-05-12 08:54:46

标签: java html jsoup

我想从一个div类中提取数据,但是它显示了我希望逐个获取数据项的整个字符串。

Document doc = Jsoup.parse(get_html);
String Title = doc.getElementsByClass("jTit").text();
String CoName = doc.getElementsByClass("coName").text();
System.out.println(Title);
System.out.println(CoName);

1 个答案:

答案 0 :(得分:0)

您显然拥有指定类的多个元素,getElementsByClass会返回包含所有Elements的集合。所以你可能想要提取每个文本,因为你需要遍历这个集合,获取每个元素,然后从中获取文本。

这是一个例子

public class JsoupTest {
    @Test
    public void getTextByClass() {
        String html = "<html>\r\n" + 
                "    <body>\r\n" + 
                "        <div class=\"jTit\">jtit 1</div>\r\n" + 
                "        <div class=\"coName\">coname 1</div>\r\n" + 
                "        <div class=\"foo\">foo</div>\r\n" + 
                "        <div class=\"coName\">coname 2</div>\r\n" + 
                "        <div class=\"jTit\">jtit 2</div>\r\n" + 
                "        <div class=\"bar\">bar</div>\r\n" + 
                "    </body>\r\n" + 
                "</html>";

        Document doc = Jsoup.parse(html);

        Elements jTitElements = doc.getElementsByClass("jTit");
        for(Element e : jTitElements) {
            System.out.println(e.text());
        }

        Elements coNameElements = doc.getElementsByClass("coName");
        for(Element e : coNameElements) {
            System.out.println(e.text());
        }
    }
}

打印:

jtit 1
jtit 2
coname 1
coname 2