linux – 使用wget镜像具有相同名称的路径和子文件夹的网站

linux – 使用wget镜像具有相同名称的路径和子文件夹的网站,第1张

概述我正在尝试制作一个网站的镜像,但URL包含多个路径,这些路径在以正常wget方式复制到磁盘上的文件时会重叠. http://example.com/news和http://example.com/news/article1等网址会出现此问题. Wget将这些URL下载为/ news和/ news / article1,但这意味着/ news文件被具有相同名称文件夹覆盖. 正确的静态镜像需要将这两 我正在尝试制作一个网站的镜像,但URL包含多个路径,这些路径在以正常wget方式复制到磁盘上的文件时会重叠. http://example.com/news和http://example.com/news/article1等网址会出现此问题.

Wget将这些URL下载为/ news和/ news / article1,但这意味着/ news文件被具有相同名称的文件夹覆盖.

正确的静态镜像需要将这两个URL下载为/news/index.HTML和/ news / article1.

我试图通过运行wget两次并相应地移动文件来解决这个问题,但这对我来说效果不佳. / news路径包含需要转换的/ news / article1的链接.我使用-k选项转换链接,但如果我运行wget两次,它不会转换这些不相关的下载文件之间的链接.

这是我的命令:

wget -p -r -l4 -k -d -nH http://example.com

以下是我尝试过的一个工作示例:

# wget once at first level (gets /news path but not /news/*)wget -p -r -l1 -k -nH http://example.com# move /news file to temp pathmv news /tmp/news.HTML# wget again to get everything else (notice the different level value)wget -p -r -l4 -k -nH http://example.com# move temp path back to /news/index.HTMLmv /tmp/news.HTML news/index.HTML

在上面的示例中,/ news页面上应该指向/ news / article1的链接尚未转换.

有谁知道如何使用wget解决这个问题?是否有更好的工具可以使用?

解决方法 我想到了!

问题是我假设/news / index.HTML是我需要的URL.仔细阅读手册页后,我发现-E( – adjust-extension)解决了我的问题.此标志强制wget将.HTML扩展名应用于它下载的所有HTML文件.

将它与-k耦合以转换链接会产生100%可用的镜像,该镜像具有所需的所有页面.

这是下载文件和路径的示例映射:

http://example.com/news           -->  /news.HTMLhttp://example.com/news/article1  -->  /news/article1.HTML

作为功​​能镜,这很棒.默认的Web服务器配置(至少对于Apache)似乎允许路径http://sitemirror.com/news/article1加载/news/article1.HTML内容.但是,重写可能需要使http:/sitemirror.com/news路径不显示该文件夹的404或索引.这不应该是艰难的.

哦,所以这是我最后的wget命令:

wget -p -r -l4 -E -k -nH http://example.com
总结

以上是内存溢出为你收集整理的linux – 使用wget镜像具有相同名称的路径和子文件夹的网站全部内容,希望文章能够帮你解决linux – 使用wget镜像具有相同名称的路径和子文件夹的网站所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1017974.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存