我正在使用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&path=141_77&product_id=4309"> here is the text</a>
</div>
我想要做的是,我想得到该对象的“这是文本”部分。任何人都可以帮助我吗?
由于
答案 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
个对象中的每一个都有您想要提取的相关信息。