如果未指定-k,则让wget在下载后将HTML链接转换为相对链接


32

-k选项(或--convert-link)将下载完成后,如该男子页说后转换链接在网页中相对:

下载完成后,请转换文档中的链接以使其适合本地查看。这不仅会影响可见的超链接,还会影响文档中链接到外部内容的任何部分,例如嵌入的图像,样式表的链接,非HTML内容的超链接等。

因此,如果我未指定-kwget下载后是否可以再次运行并修复该问题,如果是的话,正确的命令是什么?我的猜测是wget -c [previous options used] [url]在文件下载到的同一工作目录中运行它。


1
您当然可以在下载后对文件进行后处理,但是我不知道是否wget这样做。您尝试的想法-c很不错。是时候尝试了!
quack quixote 09年

是否有方便的实用程序来转换链接?顺便说一下,在Windows上运行…
Nathaniel

perl...没有预先编写的脚本,但是如果我想要一个我要使用的DIY解决方案
快八吉x德09年

好的谢谢。没有安装Perl,获取它会花费太长时间。幸运的是,我发现了如何使wget完成这项工作。我发布了答案。
纳撒尼尔(Nathaniel)2009年

顺便说一句,ActivePerl就像一个Windows Perl端口一样。这是一个相当小的安装程序,我敢肯定大多数CPAN模块都可以使用它。 activestate.com/activeperl
嘎嘎吉x德09年

Answers:


23

是的,您可以wget做到。我会说用wget -nc -k [previous options] [previous url]-nc没有礼貌。从手册页:

−nc是SPECI网络版,这种行为被抑制,和wget将拒绝下载的文件科幻新副本。

-k选项执行链接转换。因此,wget开始在远程服务器中进行挖掘,查看您已经拥有的所有文件,拒绝重新下载它们,然后在完成后将HTML链接编辑为相对。真好


3
不,这对我不起作用。他下载了第一个文件(例如index.html),看到已经下载了一个站点。如果要让wget递归工作,则必须使用时间戳(-K)选项。因此,wget必须请求所有标头都匹配,无论文件是否更新。

12
基于darwin11.1.0构建的GNU Wget 1.13.3。尝试同时使用这两个选项可提供Both --no-clobber and --convert-links were specified,only --convert-links will be used.
Ludovic Kuty 2011年

2
如果没有-k,您的问题是否没有要求?
barlop 2012年

8
cf. @LudovicKuty的评论-从wget 1.13开始--no-clobber不适用于--convert-links。有关详细信息,请参见http://savannah.gnu.org/bugs/?31781
David Moles

1
万一有人在意,我为wget 1.12构建了一个docker
berezovskyi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.