我知道使用wget -mkp http://example.com可以镜像一个网站及其内部链接的所有文件。
但是,我需要备份一个将所有图片存储在另一个域中的网站。如何使用wget下载这些图片,并相应地更新src标签?
谢谢!
但是,我需要备份一个将所有图片存储在另一个域中的网站。如何使用wget下载这些图片,并相应地更新src标签?
谢谢!
wget --recursive --timestamping -l inf --no-remove-listing --page-requisites http://site.com
"第二个wget可跨越主机,但不会递归检索页面"
find site.com -name '*.htm*' -exec wget --no-clobber --span-hosts --timestamping --page-requisites http://{} \;
我已经尝试过这个方法,它似乎大部分都可以工作——我可以获得所有来自我想要的站点的.html页面,然后是外部文件。我还没有能够将链接更改为相对于外部文件的本地副本。使用带有-r和-H的wget非常危险,因为它可以很容易地通过广告或搜索框进入大型网站并跨越整个互联网。下载单个页面的所有依赖项的技巧在于您不一定需要递归,但是您确实希望下载页面先决条件并允许wget跨主机,如下所示:
wget -H -N -kp http://<site>/<document>
然而,使用此命令时,您现在不会获得递归行为。
因此,为了将两者结合起来,我们可以使用第一个wget递归查找页面,尽管仅限于该域;以及第二个wget跨主机但不递归检索页面:
wget -mkp http://example.com
find example.com/ -name '*.html*' -exec wget -nc -HNkp http://{} \;
这里还有另一个人有类似的问题,但下载远程图片似乎没有得到解决。
这个帖子建议只需咬紧牙关并执行“-r -l 1 -H”,但也要使用-A来限制实际保存为图像或CSS类型的文件:
http://www.images.domain
上,请尝试以下操作:wget -mkp -E -np -H -Dexample.com,images.domain http://example.com
-mkp
以及其他一些参数,其中一些 [-E(-adjust-extension)
和-np(-no-parent)
]只是因为我认为它们可能很方便使用,另外还有以下这些你肯定需要用到的参数:-H (--span-hosts) => enables spanning across hosts when doing recursive retrieving
-D<comma separated domain list> (--domain-list=<comma separated domain list>) => used to set the domains to be followed for file retrieving
就这样了,可以参考wget手册以获取更多信息。
find..
行存在问题:当使用Wget
带有-N
参数运行时,无论是否带有-r
或-p
参数,决定是否下载文件的新版本取决于本地和远程时间戳以及文件大小(请参阅时间戳)。不能同时指定-nc
和-N
。 - cofiem