使用Jsoup获取Anchor Link

时间:2014-04-05 16:05:34

标签: java html anchor jsoup href

我使用

获取href

Jsoup.parse(hrefLink, "").select("a[href]").attr("href")

hrefLink成立于hreflink。

我想要做的是,如果符合我的条件,从当前网页获取外发链接。不幸的是,由于锚链接,我不能总是得到外向链接,但我希望能够得到锚链接重定向的其他href。例如:

给定页面:http://en.wikipedia.org/wiki/Baked_potato

其中引用[10] anchorlink有两个外向链接。我希望能够得到它们。我怎么能用Jsoup做到这一点?如果使用Jsoup是不可能的,我还能使用其他什么?

1 个答案:

答案 0 :(得分:0)

HTML锚点(以及一般的片段链接)仅指示当导航到锚点时(通过链接或直接通过带有#fragment的URL)浏览器将滚动到的文档中的位置;他们不会重定向"任何事情。链接之间的关系不在文档中编码,因此Jsoup(或任何其他库)通常无法确定这一点。您的程序需要对其正在处理的页面有一些语义知识。

在您的维基百科示例中,找到li#cite_note-10元素后,您可以选择所有子a元素,然后使用absUrl("href")获取链接目标并过滤掉所有引用的链接同一页面。 (目前只检查href属性不以#开头就足够了,但一般情况下,文档也可以使用完整的URL链接到自身。)但这取决于语义文档,而不仅仅是它的语法 - 未来的维基百科重新设计可能会移动到引文链接指向的位置,以便外向链接不再是引文链接目标的子项,并且您的代码将会中断。