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


有时候想把一些不错的静态站点的内容离线下来,然后制作成为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, 2 months ago

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

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

kula321 answered 10 years, 2 months ago

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


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

Leopold answered 10 years, 2 months ago

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

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

teleportpro

siemen answered 10 years, 2 months ago

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

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

kanibep answered 10 years, 2 months ago

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

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

upset answered 10 years, 2 months ago

Your Answer