我正在实现一个网络机器人,它必须从页面中获取所有链接并选择所需的链接。除了我遇到一个链接在“表”或“跨度”标签内的问题外,我一切都在工作。
这是我的代码片段:
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 验证器抛出了大量错误。这会导致问题吗?
最佳答案
一般来说,Jsoup 可以处理最糟糕的 HTML。在 JSoup 使用它时转储 HTML(您可以简单地输出 doc.toString()
)。
提示 :使用 select()
而不是 getElementsByX()
,它更快,更灵活。Elements elts = doc.select("a");
(编辑)
以下是有关 Selector-API 的概述:http://jsoup.org/cookbook/extracting-data/selector-syntax
关于hyperlink - Jsoup 获取页面中的所有链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12526979/