如果你采用的是本地数据库备份,那么我强烈建议你使用异地数据库备份,本地备份的危险性不需要多说,前期搭建的minio拿来备份是一个不错的选择,除了minio以外,你依旧可以把备份文件上传到任意第三方存储平台,具体方法如下。
(更多…)标签: 备份
-
微信聊天记录导出工具分享
微信里积累了数年的聊天记录,连iPhone都吃不消了,可惜你依旧不能删掉它们。把重要的聊天记录导出来吧,然后你就可以在电脑上好好收藏和品味了。
(更多…) -
[碎碎念]因为下载游戏,所以固态硬盘坏了
这不是因为最近epic搞了限免gta5,我也就跟着领取了,然后毕竟这款游戏也有90多GB,就让他下载我就躺床上去了,第二天发现电脑咋出问题了!
(更多…) -
开源微博内容备份工具
即使微博账号被封掉,也可以顺利的把全部内容导出。也可以时常给自己的微博备份一下,谁知道哪天触发某些内容就被ban掉了呢?这是一款开源的微博备份工具,应该很安全,所有代码均可以查看。
(更多…) -
微博内容导出备份工具
支持被封用户(需使用被封用户原账号登陆)一键导出指定用户的所有微博&文章 ,备份支持Windows系统和Mac系统
项目基于微博现有接口+TypeScript 构建,为微博网友提供一个方便的, 以供自己阅读/数据备份/自身结集整理的方式,文章底部放技术支持和下载链接!
软件运行截图
备份输出的html文件页面
备份输出的 pdf 电子书
使用指南
- 登录微博. 由于微博网页本身问题, 输入账号/密码/验证码时略有卡顿, 请耐心等待
- 进入系统设置, 将个人主页地址粘贴进输入栏. 点击同步个人信息按钮, 可看到预估的备份时长, 点击开始备份, 执行备份操作.
- 备份完成后会自动打开电子书输出目录, 稳部落输出的电子书目录下, 即为电子书, 其中, html目录下为 html 格式书籍, index.html为目录页. pdf下为 pdf 输出位置
配置项说明
- 备份页数: 从第 m 页备份到第 n 页
- 除首次备份外, 正常使用只要备份前 10 页微博即可, 可以加快备份速度
- 微博排序
- 按微博发布时间进行排序. 精确度为天. 建议使用由旧到新模式, 符合阅读习惯
- 图片配置
- 电子书内是否包含图片. 建议选择有图模式
- 自动分卷
- 解决电子书体积过大问题. 如果单本电子书内微博总数超出配置值, 将会分为多卷输出
- 时间范围
- 只输出指定时间范围内的微博记录.
- 分页依据
- html 版电子书内, 按什么标准合并微博. 推荐按月合并微博. 话痨博主可以按天, 不喜欢说话的博主可以按年
Q & A
问: 软件安全吗, 为什么一定要登陆后才能使用? 答: 作者可以保证从项目 Github 主页上下载的软件安全可靠. 项目源代码开放, 实在不放心可以基于源代码自行编译. 由于是微博备份项目,只有登录自己的微博账号后才能看到发布的所有微博, 所以必须要登陆.
问: 为什么备份这么慢? 为什么每次都要等 20s 之后才抓取下一条微博? 答: 新浪对爬虫进行了严格限制, 20s 抓一次是我试验多次之后, 可以安全备份微博数据的最短间隔. 作为为非开发人员提供的备份工具, 稳定第一 ?
代码规范
- 变量命名规范
- 类型统一使用 namespace 方式声明, 导入时使用Type + xxx形式进行导入
- Model 导入时统一使用M + xxx形式进行导入
- View 导入时统一使用View + xxx形式进行导入
- Util 工具函数导入时统一使用xxx + Util形式进行导入
- async 函数前统一添加async前缀, 以和正常函数进行区分
- 文件命名规范
- 统一使用下划线方式命名
开发说明
- 必须使用 node12
- Electron 版本必须和环境中的 node 版本一致, 才能正常编译 sqlite
- 目前使用的是 [email protected], 自带 node 为 12.4.0, 因此要求环境 node 也需要为 12.x.x
- Electron 版本必须和环境中的 node 版本一致, 才能正常编译 sqlite
- 建议只开发命令版
- 使用npm run ace启动
- GUI 版需要为 Electron 编译 sqlite3, 非常麻烦, 不建议尝试
- 流程
- Windows 用户
- 安装VS 2019 社区版, 社区版免费下载. Windows 下为 Electron 编译 sqlite3 需要 VS 提供的构建工具
- 启动 VS, 选择工具-获取工具和功能
- 勾选使用C++的桌面开发-MSVC v140 – VS 2015 C++生成工具(v14.00), 安装即可
- 好了一个小时过去了
- 执行 npm run rebuild-sqlite3, 编译完成 sqlite3 之后, 就可以启动 GUI 界面了
- 特别说明: 这套流程只适合纯净环境, 如果是Electron@4升级到Electron@6, 再编译会编译不过去(会有 v4 的编译残留), 将整个node_modules目录删除后重新install即可
- Mac 用户
- 正常npm install即可, 注意安装puppeteer和electron本身非常耗时, 需要使用淘宝源进行下载–registry=https://registry.npm.taobao.org/
- Windows 用户
- 注意:
- 打包时会向 dist 目录中复制一份 node_modules 目录, 导致 npm run 时优先从 dist 中获取 node_module 信息, 导致无法启动
- 因此, 打包结束后需要将 dist 里的 node_modules 目录删掉, 以免影响后续开发工作
- 打包时会向 dist 目录中复制一份 node_modules 目录, 导致 npm run 时优先从 dist 中获取 node_module 信息, 导致无法启动
- 流程
- 电子书封面分辨率为: 100 * 130(宽*高)
commit 信息规范
关键字 功能 feat 添加新功能 format 调整代码格式 fix 修复错误 doc 修订文档/注释 开发指南
基本思路
- TypeScript 提供类型支持, 在编写代码时可以自动提示变量下的属性
- Electron 提供图形界面, 利用 webview 标签直接登陆微博
- 利用微博接口抓取数据
- ace/command 提供命令行支持
- sqlite3 提供数据库支持
实现方式
- 将电子书制作分为以下三步
- 初始化环境 => 对应于npm run ace Init:Env命令
- 抓取指定内容 => 对应于npm run ace Fetch:XXX系列命令, 目前支持Column/Author/Activity/Collection/Topic
- 从数据库中获得数据, 生成指定内容电子书 => 对应于npm run ace Generate:XXX系列命令, 目前支持Column/Author/Activity/Collection/Topic
- 因此, 实际任务流程就是根据用户输入 url, 生成对应命令配置, 不断执行命令即可
- 项目开发流程
- npm run watch 启动监控, 将ts自动编译为js文件
- npm run startgui, 启动前端界面(vue 项目, 基于 Element-UI 简单构建)
- 执行npm run start, 以调试模式启动 Electron
- 前端点击开始任务按钮后, 将任务配置写入task_config_list.json, 再由 Electron 收集登陆后产生的微博 cookie, 存入config.json文件中, 随后启动Dispatch:Command命令, 开始执行任务
- 项目发布
- 执行npm run dist
- 注意事项
- Electron 需要编译 sqlite3 后才能启动, 不容易搞, 建议直接使用npm run ace命令行方式进行调试
- 命令使用说明详见代码
下载链接和技术支持