如何查找网站上的所有链接/页面

Jon*_*yon 86 directory web-crawler

是否可以在任何给定的网站上找到所有页面和链接?我想输入一个URL并生成该站点所有链接的目录树?

我看过HTTrack,但下载了整个网站,我只需要目录树.

Han*_*Gay 66

检查linkchecker -it将抓取网站(在服从时robots.txt)并生成报告.从那里,您可以编写用于创建目录树的解决方案.

  • 嗨伙计们,当我扫描网站时,linkchecker没有为我工作,它只返回断开链接的报告.很小的报道.虽然它确实检查了数以千计的链接,但我无法看到报告的位置.使用9.3版可以帮忙吗? (6认同)
  • 写入文件的常用命令是“linkchecker https://example.com --file-output=csv --verbose”。也可以选择不同的格式。 (3认同)
  • 一个很好的工具.我之前使用的是"XENU link sleuth".Linkchecker更加冗长. (2认同)

Ele*_*Bit 37

如果您的浏览器中有开发人员控制台(JavaScript),则可以在以下位置键入以下代码:

urls = document.querySelectorAll('a'); for (url in urls) console.log(urls[url].href);
Run Code Online (Sandbox Code Playgroud)

缩短:

n=$$('a');for(u in n)console.log(n[u].href)
Run Code Online (Sandbox Code Playgroud)

  • “Javascript-ed”网址怎么样? (2认同)
  • 我的意思是使用Javascript完成链接.你的解决方案不会显示它. (2认同)
  • @ElectroBit我真的很喜欢它,但我不确定我在看什么?什么是`$$`运算符?或者只是[一个任意函数名称],(http://stackoverflow.com/questions/1463867/javascript-double-dollar-sign)与`n = ABC(''a')相同;`我不是了解`urls`如何获得所有'a'标记元素.你可以解释吗?我假设它不是jQuery.我们在说什么原型库函数? (2认同)
  • @zipzit 在少数浏览器中,“$$()”基本上是“document.querySelectorAll()”的简写。更多信息请访问此链接:https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll (2认同)

Seb*_*ian 6

另一种选择可能是

Array.from(document.querySelectorAll("a")).map(x => x.href)
Run Code Online (Sandbox Code Playgroud)

有了你$$(它就更短了

Array.from($$("a")).map(x => x.href)
Run Code Online (Sandbox Code Playgroud)

或者甚至更短

Array.from 不需要地图

Array.from($$("a"), (x) => x.href)
Run Code Online (Sandbox Code Playgroud)

或者

[...$$("a")].map((x) => x.href)
Run Code Online (Sandbox Code Playgroud)

或者

$x('//a[@href!="#"]').map(({ href }) => href)
Run Code Online (Sandbox Code Playgroud)