整站离线下载一次搞定:书签、截图全部出局,WebSite-Downloader 把网站搬回家
整站离线下载一次搞定书签、截图全部出局WebSite-Downloader 把网站搬回家【免费下载链接】WebSite-DownloaderA website downloader written with Python项目地址: https://gitcode.com/gh_mirrors/web/WebSite-Downloader这篇文章我打算用一场旧方法淘汰赛来讲书签、截图、浏览器另存为、命令行工具四个最常见的保存网站手段我挨个拉上台试一遍看它们分别输在哪儿最后再拆一个赢下整场比赛的选手——WebSite-Downloader一个用 Python 写成的整站离线下载工具。比赛开始前先看你的真实处境。周三凌晨 1 点 47 分你打开收藏夹里那位技术博主的网站准备接着读上周没看完的系列文章。页面加载到一半白屏。刷新404 Not Found。你愣了十几秒开始翻聊天记录、翻邮件、翻云盘——最后只能承认三年来你只是收藏了这个网站从来没有真正拥有过它。收藏夹里躺着的从来不是内容只是一串随时会失效的地址。 书签、截图、另存为逐个出局四种旧办法为什么救不了你先把四种旧办法拉上台看它们各自的死因。书签只存地址不存内容链接一断全盘归零书签的本质是一张地址条。地址活着的时候它带你到内容地址一死它只是一行没用的字符。博主换服务器、域名到期不续费、网站改版换路径——任何一个变故都能让几百个书签一夜之间集体失效。它保存的是去那里的路而不是那里的东西。截图有像素没有交互看得了图点不了按钮截图能留下长相留不住行为。菜单点不开、文章翻不了页、代码高亮糊成一片。保存一百张截图等于保存一个无法翻动的相册。对要离线读文档、做演示的人来说这远远不够。浏览器另存为一次救一页40个页面就要40次另存为能完整救下一个页面但一次只有一页。一个 40 页的教程你要手动点开、另存、命名、整理 40 次页面上引用的 CSS、图片还经常被浏览器拆散另存回来的页面有时连样式都是坏的。手动操作到第 15 页你就开始怀疑人生。命令行工具功能全但配置劝退新手第一关就卡住wget、httrack 这类工具确实能整站抓取但参数又多又碎镜像模式、递归深度、链接转换规则……新手光是把参数拼对就要翻半天文档。为了存一个网站先得学会一门咒语这个门槛本身就挡住了大多数人。四轮淘汰赛打完留下的需求其实很朴素一个不用学咒语、能把整站连同资源一起带走、离线打开还和在线一样的工具。零依赖的整站离线下载方案长什么样一个文件扛下所有WebSite-Downloader 解决的就是这件事用不到 1000 行 Python把整个网站连同图片、样式、脚本、文档一起抓回本地自动把页面里所有链接改写成相对路径离线双击就能像在线一样浏览。它和同类方案的本质区别用一个表就能说清方案能带走什么离线体验上手难度书签一串地址链接一断全废零截图一张图不能点、不能翻零另存为单个页面样式常丢、要一页页救低wget 等命令行整站参数劝退新手高WebSite-Downloader整站 全部资源链接重写离线可逛低更难得的是整个项目只有WebSite-Downloader.py一个核心文件纯 Python 标准库写成零第三方依赖Python 3.6 以上就能跑连pip install都省了。 3步把整站备份到本地改一行网址就开跑拿到它只要三步最省事的那条路。第一步获取代码git clone https://gitcode.com/gh_mirrors/web/WebSite-Downloader cd WebSite-Downloader第二步打开WebSite-Downloader.py滚动到文件末尾把示例网址换成你的目标站点if __name__ __main__: manager Manager(https://www.whsw.net/) manager.start()第三步运行python WebSite-Downloader.py就这三步没有第四步。不用装依赖不用配环境改一行网址剩下的交给程序。运行后程序立刻开启 8 个子线程并发抓取控制台实时打印每一条处理记录。当所有线程在60 秒内找不到新链接时下载自动结束终端还会响起滴滴滴的提示音。去以域名命名的文件夹比如whsw-site/www.whsw.net/里双击index.html——一个和线上几乎一模一样的本地网站就这么诞生了。 为什么搬回家的网站离线还能正常逛链接重写是关键这是整个工具最妙的设计。普通下载器把文件搬回来就完事了但页面里那些href、src还指着线上地址离线双击必然打开失败。WebSite-Downloader 的做法是边搬边改门牌号。它把 HTML 里的链接、CSS 里的url(...)全部提取出来先过滤掉外站、javascript:、data:image这类无效地址再通过顶级域名比对确认哪些属于本站最后把线上绝对链接改写成本地文件之间的相对路径。搬完家之后页面之间依然互相指得对图片、样式、跳转全部正常。这就是离线可逛和离线能打开一张皮的本质区别。8线程流水线加60秒自动收尾下载自己知道什么时候停抓取不是瞎抓。8 个子线程Spider从共享队列里取链接各自干活主线程Manager负责回收子线程发现的新链接、去重、再分发形成一条高效的流水线。60 秒找不到新链接就自动收尾再响铃 10 次提醒你——你不用守着终端也不用担心它停不下来。编码三级兜底与30多种格式白名单老网站和视频文件都接得住编码兜底内置utf-8 → gb2312 → gbk三级解码遇到中文老网站也不怕乱码。格式白名单从网页三件套到 jpg、png、gif、svg、ttf、woff、mp3、mp4、pdf、doc、xls、zip、rar……30 多种后缀自动识别并下载。大文件放宽超时默认超时 20 秒遇到视频、压缩包这类大文件自动放宽到600 秒耐心等它下完。容错重试每个链接最多尝试 3 次超时自动重试请求自动带 Cookie 和浏览器 UA降低被拒概率。⚙️ 进阶调优线程数与格式白名单这样改默认 8 线程对多数场景够用。带宽富裕、目标服务器扛得住的话把第 88 行的range(8)改成range(16)即可提速。注意线程不是越大越好爬太猛容易给人家服务器造成压力8~16 之间通常比较稳妥。想支持新格式往Spider.__init__里的other_suffixes集合加个后缀就行self.other_suffixes set([js, jpg, png, gif, svg, json, webp, apk, ...])这4类人最适合把整站下载纳入日常个人知识库搭建者把技术博客、API 文档整站下载分类存放断网、出差路上随时查阅等于给自己建了座离线图书馆。需要离线演示的职场人产品演示、教学培训最怕现场断网。提前把官网整站搬进笔记本拔掉网线也能流畅讲完气场稳稳的。网站站长与备份党自己的博客、企业官网每月做一次整站备份等于给网站上了异地容灾成本几乎为零。SEO 与竞品分析者把竞品网站下到本地慢慢拆解结构、链接关系、资源策略反复测试不碰线上服务器。️ 新手最容易踩的4个坑和对策坑一JS 动态渲染的网站下下来是空壳。页面内容全靠 JavaScript 加载的站抓到的是骨架。对策先拿静态内容多的网站测试这类站的成功率最高。坑二外站 CDN 资源不会下载。工具只抓同顶级域名的资源引用第三方 CDN 的图片、字体可能缺失。对策这不是 bug是设计——先确认目标网站的资源是否自托管。坑三超大网站会占满硬盘。大型站点动辄几个 GB。对策先小范围测试或只抓重点栏目别一次贪多。坑四报错时一脸懵。所有错误都会带时间戳记进当前目录的log.log。对策先看日志再定位绝大多数是目标站点超时或反爬换个时段重试即可。✅ 下一步清单挑一个你常看的静态技术博客用上面 3 步跑通第一次整站下载双击本地index.html确认图片、样式、跳转全部正常翻一遍log.log看看哪些资源失败、为什么失败按网站大小调整线程数、补充格式白名单把定期整站下载写进你的内容安全管理清单。收藏夹是你的愿望清单本地硬盘才是你的仓库。别等到 404 那天才想起备份——今天就把最重要的那个网站搬回家。【免费下载链接】WebSite-DownloaderA website downloader written with Python项目地址: https://gitcode.com/gh_mirrors/web/WebSite-Downloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

从截图到可编辑文档:Umi-OCR 离线文字识别全流程手记

从截图到可编辑文档:Umi-OCR 离线文字识别全流程手记

从截图到可编辑文档:Umi-OCR 离线文字识别全流程手记 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言…

2026/10/8 23:10:55 阅读更多 →
手速不是关键:三步玩转开源直播流扫码工具,把抢码窗口提前一个身位

手速不是关键:三步玩转开源直播流扫码工具,把抢码窗口提前一个身位

手速不是关键:三步玩转开源直播流扫码工具,把抢码窗口提前一个身位 【免费下载链接】MHY_Scanner MHY扫码登录器,支持从直播流抢码。 项目地址: https://gitcode.com/gh_mirrors/mh/MHY_Scanner 直播间里,二维码出现的窗口…

2026/10/1 4:03:13 阅读更多 →
AI视频增强从0到1:用Video2X免费搞定视频超分辨率修复的完整指南

AI视频增强从0到1:用Video2X免费搞定视频超分辨率修复的完整指南

AI视频增强从0到1:用Video2X免费搞定视频超分辨率修复的完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trendin…

2026/10/1 21:19:14 阅读更多 →

最新新闻

Vue生态实战总结:天气获取、mpvue小程序、Koa服务与图片标注

Vue生态实战总结:天气获取、mpvue小程序、Koa服务与图片标注

不知道大家有没有这种经历:一个功能单拎出来感觉都见过,但真到自己动手做的时候,总会被各种边角问题磨掉大半天的耐心。前阵子我们软件组内部做了一轮前端集中练习,几个人分别领了不同的任务,最后汇总到一起&#xff0…

2026/10/13 13:19:52 阅读更多 →
Vue多页应用转单页:Vite构建模式切换实战

Vue多页应用转单页:Vite构建模式切换实战

早期折腾一个管理系统时,遇到过特别拧巴的构建需求:项目本身是典型的多页 Vue 应用,好几个页面各司其职,但其中一个渠道方只给了一个入口,要求所有页面必须以“单页面应用”的方式打包交付,而且要能同时在测…

2026/10/13 13:19:52 阅读更多 →
Java二叉搜索树从原理到工业实践全解析

Java二叉搜索树从原理到工业实践全解析

1. 项目概述:为什么树结构是Java开发者绕不开的“分水岭”刚带完一届校招培训,有个现象特别明显:能熟练写链表、栈、队列的新人不少,但一提到二叉搜索树的删除逻辑,八成会卡在“双子节点怎么处理”上;问红黑…

2026/10/13 13:19:52 阅读更多 →
Fabric 2.5多组织农产品溯源系统:可运行毕设源码包

Fabric 2.5多组织农产品溯源系统:可运行毕设源码包

简介:本资源是一套基于Hyperledger Fabric区块链框架构建的农产品通用溯源系统完整实现,面向计算机类专业本科生、研究生及初入区块链领域的开发者,解决传统农产品流通中信息不透明、数据易篡改、多方协作难等核心问题,适用于毕业…

2026/10/13 13:19:52 阅读更多 →
Java校内二手交易系统毕设全攻略:从Spring Boot到小程序实战

Java校内二手交易系统毕设全攻略:从Spring Boot到小程序实战

1. 项目定位与需求拆解:为什么“校内二手交易”是最稳妥的毕设选题每年到二月底三月初,总有一批计算机专业的大四学生开始焦虑毕业设计选题。Java校内二手交易市场这套系统,我前前后后带人做过不下二十个版本,从最早SSH框架的JSP项…

2026/10/13 13:19:52 阅读更多 →
webgl-fundamentals 教程解读:在 WebGL 中实现图像处理(纹理采样、像素偏移与 3x3 卷积核)

webgl-fundamentals 教程解读:在 WebGL 中实现图像处理(纹理采样、像素偏移与 3x3 卷积核)

图形学 【免费下载链接】webgl-fundamentals WebGL lessons that start with the basics 项目地址: https://gitcode.com/gh_mirrors/we/webgl-fundamentals 点击查看 免费下载 WebGL 中的图像处理远比想象中简单:只要掌握"纹理(textur…

2026/10/13 13:18:51 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →