获取网站的所有 href 属性

IT技术 javascript http href hyperlink
2021-03-15 01:52:03

谁能告诉我一种使用 javascript 获取网站中所有 href 属性(链接)的方法吗?如果您能给我一个代码示例,我将不胜感激。

4个回答

您可以使用document.links获取锚点,然后循环抓取href,如下所示:

var arr = [], l = document.links;
for(var i=0; i<l.length; i++) {
  arr.push(l[i].href);
}
//arr is now an array of all the href attributes from the anchors in the page

您可以在此处对其进行测试,如果需要,您可以在.push()调用数组之前对其进行更多过滤,但这就是获取链接和循环遍历的概念。

他们不在我的领域。如果没有其他方法,那么我想我必须在服务器端进行,对吗?你知道有什么方法可以从服务器端做到这一点吗?
2021-04-25 01:52:03
@netha - 您在自己的域中获得的页面还是其他页面?如果他们在另一个上,由于安全限制,您别无选择,只能在服务器端进行。
2021-04-29 01:52:03
如何在不加载网页的情况下获取网页中的链接?(基本上我想要的是这个。用户输入一个 URL,我想加载该 URL 中的所有可用链接。)你能告诉我一种实现这一目标的方法吗?
2021-05-10 01:52:03
不,我没有使用任何框架作品。我希望在客户端进行(我认为服务器端会给服务器带来更多负担,因为我希望对该链接进行一些操作)。我只需要一种方法来做到这一点。如果它可以完成工作,我什至准备学习一个框架。我怎样才能做到这一点?
2021-05-14 01:52:03
我正在使用 WAMP 服务器,然后我想我在 apachi 平台上
2021-05-17 01:52:03

这是一种方式getElementsByTagName

var links = document.getElementsByTagName('a');

for(var i = 0; i< links.length; i++){
  alert(links[i].href);
}

利用:

var anchors = document.getElementsByTagName('a');
var hrefs = [];
for(var i=0; i < anchors.length; i++){
  if(1/* add filtering here*/)
    hrefs.push(anchors[i].href);
}

一种简单的方法一种方法是使用document.getElementsByTagName函数。例如

document.getElementsByTagName('a');

更新

有一个更简单的方法。请参阅@Nick Craver 的回答

@Nick:点了。修改为“一个简单”。:)
2021-05-03 01:52:03
我反对说这是最简单的:)
2021-05-21 01:52:03