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

 邱喷壶_381 发布于 2022-11-26 19:41

有时候想把一些不错的静态站点的内容离线下来,然后制作成为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以及图片文件。)

8 个回答
  • 建议你可以试试这个命令:

    wget -m -k (-H) http://www.example.com/
    
    2022-11-26 19:48 回答
  • 几乎所有的笔记软件都有这个功能,比如印象笔记的剪藏,还有就是像360浏览器网页快照类似功能,也能帮你快速保存整个网站。

    2022-11-26 19:48 回答
  • teleportpro

    2022-11-26 19:48 回答
  • 2022-11-26 19:48 回答
  • 以前用过一个软件叫做整站下载器。

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

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

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

    2022-11-26 19:48 回答
  • HTTRACK

    2022-11-26 19:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有