如何完美备份(离线)静态站点?


有时候想把一些不错的静态站点的内容离线下来,然后制作成为Docset放在Dash里面便于管理查看。将站点,其实就是带有索引(一般是index.html)的html文件转换为docset格式这一步已经用python实现自动化了。剩下的问题就是如何离线静态站点。

目前主要有两种方法:

  1. 用wget下载资源,一般用 wget -r -p -k -np [site_root_path] 命令;
  2. 用SiteSucker下载。

但是这两种方法都不是很完美,因为上面两种方法下载页面时,只下载: site_root_path以及子目录下的html文件,这样会导致一些引用的js脚本,css样式表以及图片等都下载不了。比如 The Django Book 这个网站,如果用


 wget -r -p -k -np http://djangobook.py3k.cn/2.0/

就无法下载到 http://djangobook.py3k.cn/sitemedia/css/djangobook.css 以及其它的一些资源,这就导致在Dash中查看时失去一些样式。

所以问题来了,有没有现成的傻瓜方法可以让我完美的备份静态站点?(完美就是指下载某个目录时,要下载它的所有子目录,并且也要选择性的下载要使用到的但不在该目录下的css、js以及图片文件。)

python web

不在对你说爱 10 years, 10 months ago

我经常遇到的麻烦是,有的时候并不需要下载整个页面,可能是页面的某个div,其他边栏顶栏都不需要。这个时候我通常会用正则或者字符串函数截取需要的部分,拼装之后写文件。css其实不是大问题,可以自己配,拼装的时候写好就可以。我一般都是先把原配的下载下来,手工组装出一个页面去调,不合适自己再写另外一个文件加上一些样式。另外不建议直接拿shellscript去爬,因为要处理的东西太复杂了,用py的http模块是个不错的选择。

妹子萌一个 answered 10 years, 10 months ago

kula321 answered 10 years, 10 months ago

建议你可以试试这个命令:


 wget -m -k (-H) http://www.example.com/

Leopold answered 10 years, 10 months ago

几乎所有的笔记软件都有这个功能,比如印象笔记的剪藏,还有就是像360浏览器网页快照类似功能,也能帮你快速保存整个网站。

第十七喵喵 answered 10 years, 10 months ago

teleportpro

siemen answered 10 years, 10 months ago

酔恋花月之雫 answered 10 years, 10 months ago

以前用过一个软件叫做整站下载器。

kanibep answered 10 years, 10 months ago

坦白:多年前曾经盗版过 Teleport Ultra 用来扒离线站点,效果不错,相关css和js能够直接识别到,并能够无条件下载,或设定过滤条件(扩展名、文件大小等)部分下载

免费或开源方案目前仍在寻求中

upset answered 10 years, 10 months ago

Your Answer