Jsoup从页面获取所有链接

时间:2012-09-21 08:36:15

标签: hyperlink jsoup

我正在实施一个网络机器人,必须从页面获取所有链接并选择所需的链接。除非我遇到一个链接在“table”或“span”标签内的探测器,否则我完成了所有工作。 这是我的代码片段:

Document doc = Jsoup.connect(url)
    .timeout(TIMEOUT * 1000)
    .get();
Elements elts = doc.getElementsByTag("a");

以下是HTML示例:

<table>
  <tr><td><a href="www.example.com"></a></td></tr>
</table>

我的代码不会获取此类链接。使用doc.select也无济于事。我的问题是,如何从页面获取所有链接?

编辑:我想我知道问题出在哪里。我遇到问题的页面写得非常糟糕,HTML验证器会抛出大量的错误。这会引起问题吗?

1 个答案:

答案 0 :(得分:4)

一般来说,Jsoup可以处理moste糟糕的HTML。在JSoup使用它时转储HTML(您可以简单地输出doc.toString())。

提示:使用select()代替getElementsByX(),更快,更灵活。

Elements elts = doc.select("a"); (编辑)

以下是有关Selector-API的概述:http://jsoup.org/cookbook/extracting-data/selector-syntax