wget下载网站后部分链接未转换,如何离线转换全部链接?
解决Wget仅转换部分链接的问题(无需重新全量下载)
核心解决思路
Wget的--convert-links默认仅处理本次下载流程中抓取到的文件链接,若存在遗漏未处理的文件,直接针对本地已下载目录重新执行链接转换命令即可,无需从远程服务器重新下载内容。
具体执行命令
方式1:指定本地目录执行
直接指向已下载的网站根目录,执行带链接转换参数的命令:
wget --convert-links --no-clobber --directory-prefix=./example.com/ http://example.com/
方式2:进入目录后执行
先切换到下载好的网站根目录,再执行命令:
cd example.com/ wget --convert-links --no-clobber --force-html .
参数说明
--convert-links:将文件内的所有远程链接转换为本地可访问的相对路径--no-clobber:禁止覆盖本地已存在的文件,仅处理链接转换操作--force-html:强制Wget将本地文件识别为HTML格式,避免因文件扩展名问题跳过链接处理--directory-prefix:指定本地网站的根目录路径(未进入目录时使用)
补充优化方案
若仍存在少量跨主机链接未转换,可添加--span-hosts参数(不会触发新文件下载,仅处理已有文件内的跨主机链接):
wget --convert-links --no-clobber --force-html --span-hosts .
内容的提问来源于stack exchange,提问作者Make42
相关产品推荐
相关产品推荐

