【问题标题】:JSoup Extracting absolute url of a href and a div tag data simultaneouslyJSoup同时提取href和div标签数据的绝对url
【发布时间】:2015-02-23 06:45:51
【问题描述】:

我想从一个网站中提取两个彼此相邻的标签(相邻),第一个标签是 href ,它应该被提取为绝对 url 。第二个标签是一个 div 标签,我应该提取 里面的数据。

我希望输出如下

100 美元 http:\www.somesite.......

200 美元 http:\www.thesite.......

为什么?因为稍后我会将它们插入到数据库中的表中。

我尝试使用以下代码,但无法获得绝对 url,此外我无法摆脱标签,而我只想提取数据(不带标签)。

    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()) 在我的代码中,我会完全错过超链接!

有什么帮助吗?

【问题讨论】:

  • 请分享原始html。
  • 我不明白你所说的原始 html 是什么意思 我试图提取它的数据的页面 bezaat.com/ksa/jeddah/cars/all/1?so=77
  • 这里的问题应该是自包含的。链接可能会失效,因此应包含回答问题所需的所有信息。

标签: java jsoup


【解决方案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"));

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    相关资源
    最近更新 更多