gpt4 book ai didi

linux - wget 克隆一个网站,链接到目录而不是 index.html

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:40 25 4
gpt4 key购买 nike

我想用 wget 克隆一个 wordpress 博客,这样我就可以将它作为静态内容包含在我正在编写的网络应用程序中。

目前我正在使用以下内容克隆网站:

wget -rk http://sitename.com

这运行良好,但生成的 html 中的链接指向 index.html 文件。我希望这些链接指向包含该文件的目录。

例如对于页面 http://sitename.com/blog-post-about-cats/wget 正在生成目录“blog-post-about-cats”并在其中放置一个 index.html 文件。该博客文章的链接写为“../blog-post-about-cats/index.html”,我希望它们是“../blog-post-about-cats/”。

我想我想要它是因为我认为 url 中的 index.html 看起来有点难看,而且这些页面都是关于展示的。

有什么想法吗?使用 wget 或其他命令行工具是否可行?

谢谢。

最佳答案

我假设默认情况下 wget 不会执行此操作,因为您的本地 Web 服务器可能配置为提供目录的索引页面,而不是 index.html。最简单的解决方案是使用正则表达式对所有获取的 HTML 文件进行后处理:

find -name '*.html' | xargs sed -rie 's/href="([^"]*)\/index\.html"/href="\1\/"/gi'

如果本网站的页面是其他类型的文件,例如 .php 文件,请替换为“*.php”或任何合适的文件。正则表达式的作用是识别 href="stuff/index.html"形式的字符串并去除 index.html。 xargs 和 find 用于将其应用于所有页面,而 sed 的“-i”标志使其就地修改文件。正则表达式中的“gi”标志使其替换所有出现的地方,并且不区分大小写(因为 HTML 不区分大小写)。

关于linux - wget 克隆一个网站,链接到目录而不是 index.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9111233/

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