如何在jsoup链接中获取文本?

时间:2014-02-07 14:00:49

标签: java html-parsing jsoup

我正在使用jsoup解析html页面。这是我到目前为止所做的:

doc = Jsoup.connect("http://www.marketimyilmazlar.com/index.php?route=product/category&path=141_77").get();

Element page_clips = doc.getElementById("page_clips");

Element page_clip_content = page_clips.getElementById("content");
Elements allProductPricesOnPage = page_clip_content.getElementsByClass("price");

现在,当我写道:

allProductNamesOnPage.get(0);

它返回以下内容:

<div class="name">
<a href="http://www.marketimyilmazlar.com/index.php? 
route=product/product&amp;path=141_77&amp;product_id=4309"> here is the text</a>
</div>

我想要做的是,我想得到该对象的“这是文本”部分。任何人都可以帮助我吗?

由于

2 个答案:

答案 0 :(得分:1)

如果您只想提取文字,可以调用text()方法:

String text = allProductNamesOnPage.get(0).text();

此方法获取Element及其组合子元素的文本。因此,如果您想确保仅从a元素中提取文本,请在第一个子元素上调用text()

String text = allProductNamesOnPage.get(0).child(0).text();

见这里:http://jsoup.org/cookbook/extracting-data/attributes-text-html

答案 1 :(得分:1)

您可能希望迭代已收集的Elements并逐个打印其价格:

Elements allProductPricesOnPage = page_clip_content
                .getElementsByClass("price");
for (Element el : allProductPricesOnPage) {
    System.out.println(el.text());
}

给出,

19.99 TL KDV Dahil
9.99 TL KDV Dahil
14.99 TL KDV Dahil

它的作用是,您选择Elements实施Iterator(请参阅javadoc here),这样您就可以访问集合中的各个Element个对象。

Element中重复的这些HTML个对象中的每一个都有您想要提取的相关信息。