【问题标题】:Getting the Anchor Link by using Jsoup使用 Jsoup 获取锚链接
【发布时间】:2014-05-17 23:26:01
【问题描述】:

我正在使用

获取 href

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

hrefLink 的创建地址是 hreflink。

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

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

其中引文[10]锚链接有两个传出链接。我希望能够得到它们。如何使用 Jsoup 做到这一点?如果 Jsoup 无法做到这一点,我还能使用什么?

【问题讨论】:

    标签: java html anchor jsoup href


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 2020-10-27
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      相关资源
      最近更新 更多