我正在实施一个网络机器人,必须从页面获取所有链接并选择所需的链接。除非我遇到一个链接在“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验证器会抛出大量的错误。这会引起问题吗?答案 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