如何删除"#"链接列表中的链接

时间:2014-10-11 15:35:04

标签: java character-encoding jsoup

我正在使用JSoup列出网页上的所有链接,但在我运行第一个程序后,我立即注意到所有空链接或自我链接(href="#")。所以我尝试使用以下代码删除它们:

if (link != "" && link != "#" && link != "/") {
    links.add(link);
}

但由于某种原因,它只会过滤掉"""/"链接。我以为这与隐形人物有关,但我无法弄明白。在我的控制台中,所有显示为链接的都是#

有没有人知道最近发生了什么?

2 个答案:

答案 0 :(得分:2)

你用错误的方式比较了字符串,

以下是修复:

if ("".equals(link) && "#".equals(link) && "/".equals(link)) {
links.add(link);

}

答案 1 :(得分:1)

您可以过滤掉所有以#开头或为空的链接或仅包含/在选择查询期间的链接,例如

document.select("a:not([href^=#])").select("a[href~=^/?[^/]+]");

这转换为选择所有不以#开头的标签元素,并且可能以/开头,但在这种情况下,它们不能只包含/

在这里,您可以找到我为测试准备的示例Groovy脚本 - https://gist.github.com/wololock/719985e6c48f40f8935f Java代码几乎相同,只需记住;在每一行的末尾并更改为“。”。此示例显示如何在不进行任何进一步过滤的情况下提取所有链接。