我想下载一个网页的本地备份,并获取其中所有的css、图片、JavaScript等内容。
在之前的讨论中(例如这里和这里,两个都超过两年了),通常会提出两个建议:使用wget -p
和httrack。但是,这些建议都不能满足我的需求。我非常希望能够使用这些工具来完成任务,或者使用其他替代方案。
选项1:wget -p
wget -p
可以成功下载页面的所有先决条件(包括css、图片和js等)。然而,当我加载本地备份时,页面无法加载先决条件,因为这些先决条件的路径没有从网上版本中进行修改。
例如:
- 在页面的html中,
<link rel="stylesheet href="/stylesheets/foo.css" />
需要更正以指向新的相对路径foo.css
- 在css文件中,
background-image: url(/images/bar.png)
也需要做出相应的调整。
有没有方法可以修改wget -p
,使路径正确无误?
选项2:httrack
httrack
似乎是一个很好的用于镜像整个网站的工具,但我不清楚如何使用它来创建单个页面的本地副本。httrack 论坛中有很多关于此主题的讨论(例如这里),但没有人似乎有一个百分之百可靠的解决方案。
选项3:另一种工具?
有些人提出要使用付费工具,但我无法相信没有免费的解决方案。
wget -E -H -k -K -p http://example.com
- 这是唯一对我有效的方法。来源:http://superuser.com/a/136335/94039 - its_mewget --random-wait -r -p -e robots=off -U mozilla http://www.example.com
可以在模拟Mozilla浏览器的情况下,递归地下载指定网站的所有页面并保存为本地文件,其中--random-wait
参数可以随机等待一段时间,避免对服务器造成过大负担,-r
参数表示递归下载,-p
参数表示下载页面所需的所有元素,-e robots=off
参数表示不遵循robots.txt规则。 - davidcondrey