我使用
获取href Jsoup.parse(hrefLink, "").select("a[href]").attr("href")
hrefLink
成立于hreflink。
我想要做的是,如果符合我的条件,从当前网页获取外发链接。不幸的是,由于锚链接,我不能总是得到外向链接,但我希望能够得到锚链接重定向的其他href。例如:
给定页面:http://en.wikipedia.org/wiki/Baked_potato
其中引用[10] anchorlink有两个外向链接。我希望能够得到它们。我怎么能用Jsoup做到这一点?如果使用Jsoup是不可能的,我还能使用其他什么?
答案 0 :(得分:0)
HTML锚点(以及一般的片段链接)仅指示当导航到锚点时(通过链接或直接通过带有#fragment的URL)浏览器将滚动到的文档中的位置;他们不会重定向"任何事情。链接之间的关系不在文档中编码,因此Jsoup(或任何其他库)通常无法确定这一点。您的程序需要对其正在处理的页面有一些语义知识。
在您的维基百科示例中,找到li#cite_note-10
元素后,您可以选择所有子a
元素,然后使用absUrl("href")
获取链接目标并过滤掉所有引用的链接同一页面。 (目前只检查href
属性不以#
开头就足够了,但一般情况下,文档也可以使用完整的URL链接到自身。)但这取决于语义文档,而不仅仅是它的语法 - 未来的维基百科重新设计可能会移动到引文链接指向的位置,以便外向链接不再是引文链接目标的子项,并且您的代码将会中断。