Wget - 下载后转换链接

Wget - 下载后转换链接

wget -m不久前,我下载了一个带有 的页面。内部链接转换不正确,因此只要 URL 包含?(GET 参数),链接就会断开。如果我将?URL 中的 更改为%3F,链接就会正常工作。但是,我显然无法更改页面中的所有问号,因为其中一些是外部 URL、javascript 或页面其他部分的一部分。

我可以使用哪种工具来修复这些断开的链接?

该页面不再存在,所以我无法重新下载它(使用不同的 wget 选项)

答案1

?您可以尝试用特定的上下文替换全部,例如

sed 's/?\([a-z][A-Z]\)/%3F\1/g' a.html > b.html

这将处理a.html(保持不变)并b.html使用修改后的 HTML 文本创建/覆盖。

sed表达式将找到?后跟字母 ( [a-z][A-Z]),捕获该字母 ( \(.. \)),并将其替换为%3F和捕获的字母 ( \1)。

根据您的 HTML 文件,您可能需要优化上下文才能获得有效的结果。

答案2

您可以将 --no-cobbler 选项与 -k 一起使用。

-nc将确保文件不会被再次下载。 -k如果文件存在于服务器上,将转换链接。

wget -rk -nc https://example.com

相关内容