合并这些 wget 和 egrep 命令以递归下载站点地图

Merge these wget & egrep commands for recursive download of sitemap

我正试图找到一种方法使它们协同工作。而我可以 运行 使用 Wget 成功 Windows:

wget --html-extension -r http://www.sitename.com

这会下载我服务器上从根域链接到目录的每个文件。我宁愿只下载站点地图中的页面。为此,我发现了以下使用 CygWin 的技巧:

wget --quiet https://www.sitename.com/sitemap.xml --output-document - | egrep -o
"http://www\.sitename\.com[^<]+" | wget --spider -i - --wait 1

然而,这只是检查页面是否存在,而不是像先前的 wget 命令那样将它们下载为静态 HTML 文件。

有没有办法合并这些并将站点地图页面下载为本地 html 文件?

如果您查看 wget 的手册页,您会看到 --spider 条目如下:

--spider
       When invoked with this option, Wget will behave as a Web spider, which means that it will not download the pages, just check that they are there.

要真正下载文件,您只需从命令中删除 --spider

wget --quiet https://www.sitename.com/sitemap.xml --output-document - | egrep -o \
"https?://www\.sitename\.com[^<]+" | wget -i - --wait 1