三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

网站离线下载保姆级攻略:WebSite-Downloader 整站保存实战

网站离线下载保姆级攻略:WebSite-Downloader 整站保存实战

网站离线下载保姆级攻略:WebSite-Downloader 整站保存实战

【免费下载链接】WebSite-DownloaderA website downloader written with Python项目地址: https://gitcode.com/gh_mirrors/web/WebSite-Downloader

收藏夹里躺着几十个网址,昨天还能打开,今天就成了死链。服务器关了、文章被删了,内容说没就没。WebSite-Downloader 是一个用 Python 写的网站离线下载工具,能整站保存页面、样式、脚本、图片与字体,离线也能完整浏览。

为什么需要"整站保存"而不是收藏夹

书签只存链接,不存内容;截图只留外观,丢了交互;复制粘贴则把页面结构拆得七零八落。想"连骨带肉"把网站搬回本地,唯一靠谱的方式就是整站保存。

WebSite-Downloader 的思路很朴素:从首页出发,顺着站内链接一路爬下去,把 HTML、CSS、JavaScript、图片、字体、文档统统落盘,再把页面里所有链接改写成本地相对路径。下载完成后,双击本地 index.html,效果和在线打开几乎一致。

一张表看懂它最常被用在哪儿

场景做法收获
个人知识库把技术博客、API 文档整站拉回本地,按主题归档断网也能查,本地搜索飞快
定期备份每月对自家站点或重要内容做一次整站备份服务器故障、域名过期都不怕丢
离线演示与 SEO 分析无网环境下展示页面,或本地研究链接结构不占用线上资源,可以反复试

第一次下载前的环境准备

需要的东西只有两样:Python 3.6 或更高版本,以及一个终端。然后把项目克隆下来:

git clone https://gitcode.com/gh_mirrors/web/WebSite-Downloader cd WebSite-Downloader

整个项目只有一个核心文件,没有任何额外的依赖安装负担,学习成本极低。

三步启动:改网址、运行、验收

第一步,改网址。打开 WebSite-Downloader.py,翻到文件末尾(第 424 行附近),把示例地址换成你要保存的网站:

if __name__ == '__main__': manager = Manager('https://www.example.org/') manager.start()

第二步,运行。

python WebSite-Downloader.py

第三步,验收。程序默认开 8 个线程并发抓取,全程在控制台打印进度;当 60 秒内没有新链接出现,它会自动收工并响铃提醒。之后进入生成的目录(形如 example-site/www.example.org/),找到 index.html 双击打开,一个完整的本地站点就在你手上了。

让下载更快更全的三个调节旋钮

旋钮一:并发线程数。默认 8 个线程。网络好、目标服务器扛得住时,可以把第 88 行的 range(8) 改成 range(16) 提速;反之,遇到小站点建议调低,别把对方服务器压垮。

旋钮二:支持的资源类型。Spider 类里有一个 other_suffixes 集合,默认覆盖 js、png、pdf、zip 等几十种常见格式。遇到没被收录的扩展名,往集合里加一行就能纳入下载范围。

旋钮三:错误重试与超时。每个请求最多重试 3 次,普通资源超时 20 秒,音视频等大文件放宽到 600 秒。这些参数都写在代码开头,可按需调整。

高频翻车现场速答

问:下载中途一堆报错,正常吗?答:正常,网络波动难免。所有错误都会写进 log.log,带 [socket.timeout]、[ConnectionResetError] 等标记的行会自动重试;实在拉不下来的资源会记为 [failed],可以事后单独补。

问:本地打开页面,图片样式全丢了?答:先确认资源是否真的下载成功;再排查是否引用了外部 CDN 的跨域资源,这类外链默认不会被抓取;最后,由 JavaScript 动态生成的内容,静态下载是拿不到的。

问:网站太大,怕把磁盘塞满?答:先挑几个小页面试跑,估算体积;也可以临时裁剪 other_suffixes 集合,只保留你真正需要的文件类型。

问:会把站外的链接也全拉进来吗?答:不会。工具只抓取与目标站点同顶级域名的内容,外站链接会被自动过滤,放心使用。

从"会用"到"用得好"的长期使用清单

  • 给重要站点建立每月备份节奏,让"数据无忧"成为习惯;
  • 下载前先看一眼对方的 robots.txt,下载频率别太猛;
  • 把本地站点按主题建目录,配一个全文搜索工具,就是现成的私人知识库;
  • 用顺手了,把改进建议反馈给项目社区,让工具帮到更多人。

第一次整站保存成功的那一刻,你等于给自己的数字资产上了一道保险。打开终端,挑一个你舍不得丢的网站,现在就试试吧。

【免费下载链接】WebSite-DownloaderA website downloader written with Python项目地址: https://gitcode.com/gh_mirrors/web/WebSite-Downloader

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表