使用xpath条件获取网页中的所有链接

时间:2020-11-02 21:02:54

标签: javascript html jquery xpath

对于给定网页,我可以使用document.links提取其中的所有链接。但是,我要排除包含href="javascript:void(0)"

的链接

我正在尝试使用xpath这样的document.links.evaluate("//a[not(@href='javascript:void(0)')]", document)排除此类链接,但无法将其过滤掉。

请提出解决方法

enter image description here

2 个答案:

答案 0 :(得分:1)

您应该直接使用CSS

const links = document.querySelectorAll('a:not([href="javascript:void(0)"])');

console.log(links.length)
<a href="something">something</a>
<a href="http://some.where">some.where</a>
<a href="javascript:void(0)">void</a>
<a href="https://somewhere.else">somewhere.else</a>

答案 1 :(得分:1)

如果您想确保测试链接中的内容,可以先进行过滤

const links = [...document.querySelectorAll("a")]
  .filter(lnk => !lnk.href.includes("javascript:"))
  .map(lnk => lnk.href)

console.log(links)
<a href="javascript:void(0)">Link1</a>
<a href="https://google.com">Link2</a>
<a href="javascript:void(0)">Link3</a>
<a href="https://mdn.com">Link4</a>