gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:32:09 27 4
gpt4 key购买 nike

我正在尝试制作一个网站的镜像,但 URL 包含几个路径,当以正常的 wget 方式复制到磁盘上的文件时,这些路径会重叠。问题表现为 http://example.com/newshttp://example.com/news/article1 等 URL。

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 path
mv 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.html
mv /tmp/news.html news/index.html

在上面的例子中,/news页面上本应指向/news/article1的链接没有被转换。

有人知道如何使用 wget 解决这个问题吗?是否有其他工具可以更好地工作?

最佳答案

我想通了!

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

将其与 -k 相结合以转换链接会产生一个 100% 可用的镜像,其中包含所有需要的页面。

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

http://example.com/news           -->  /news.html
http://example.com/news/article1 --> /news/article1.html

作为功能性镜子,这很棒。默认网络服务器配置(至少对于 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 镜像具有相同名称的路径和子文件夹的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27712813/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com