我想从网站旁边(相邻)提取两个标签,第一个标签是href,它应该被提取为绝对网址。第二个标签是div标签,我应该提取 里面的数据。
我希望输出如下
100 USD http:\ www.somesite ..............
200 usd http:\ www.thesite .............
为什么呢?因为稍后我会将它们插入到数据库的表中。
我尝试使用以下代码,但我无法获得绝对网址,此外我无法删除标记,而我只想提取数据(没有标记)。
Document doc = Jsoup.connect("http://www.bezaat.com/ksa/jeddah/cars/all/1?so=77").get();
for (Element link : doc.select("div.rightFloat.price,a[abs:href].more-details"))
{
String absHref = url.attr("abs:href");
String attr = link.absUrl("href");
System.out.println(link);
}
如果我尝试使用 的System.out.println(link.text()) 在我的代码中,我将完全错过超链接!
请帮忙吗?
答案 0 :(得分:1)
我不认为Jsoup css选择器组合器(即选择器中的逗号)保证输出中的排序。至少我不会指望它,即使你发现你期望的顺序中的两个元素。我不会使用逗号选择器,而是首先遍历容纳您感兴趣的相邻div的外部容器。然后,您可以在每个div中访问价格和链接。
像这样的事情。请注意,这不在我的脑海中且未经测试!Document doc = Jsoup.connect("http://www.bezaat.com/ksa/jeddah/cars/all/1?so=77").get();
for (Element adDiv : doc.select("div.category-listing-normal-ad")){
Element priceDiv = adDiv.select("div.rightFloat.price").first();
Element linkA = adDiv.select("a.more-details").first();
System.out.println(priceDiv.text() + " " + linkA.absUrl("href"));
}