wget:识别损坏的出站链接

wget:识别损坏的出站链接

wget--spider选项可以直接识别损坏的内部链接:

wget --spider --recursive --level=0 mywebsite.com

我试图扩展它来寻找损坏的出站链接,-H但因为(据我所知)你无法在外部域上指定额外的递归级别,留下来--level=0让蜘蛛在整个万维网上松散。

我能想到的一种解决方法是使用网站sitemap.xml(如果可用)获取该域的整套 URL 并将它们反馈给wget,这样我就可以限制爬行深度:

wget -O - https://mywebsite.com/sitemap.xml \
| hred -xcr [email protected] \
| wget -i - -H --spider --recursive --level 1

此设置使用单独的工具hred从 XML 中提取 URL。

有没有更有效的方法来查找损坏的外部链接wget?通过使其与站点地图本地配合使用,或者理想情况下,不依赖于该 XML 的存在。

答案1

关于sitemap.xml直接读取,这似乎是一个新功能wget2

  • 支持从本地 Sitemap XML 文件扫描 URL ( --force-sitemap -i <filename>)

wget要在没有站点地图的情况下生成网站中所有 URL 的平面列表,我们可以抓取网站并使用类似 grep 的工具从wget输出中提取 URL:

wget --spider -r mywebsite.com 2>&1 \
| rg '^--.+-- (.+)$' --replace '$1' \
| sort -u

Wget 可能不是完成这项工作的最佳工具,但它是可行的。

相关内容