Awesome
bcdown
Bilibili漫画下载器,written in Rust
这个项目用来接替之前的python版
特性
-
异步高性能
网络相关操作使用了基于
tokio
的reqwests
,较多线程版有较大的性能提升 -
更加灵活的登录
工具支持 扫码登录 及 SESSDATA登录 两种登录方式,且能保存登录结果,无需每次重复登录
-
更完善的缓存功能
工具会缓存更多的内容以减少网络请求,缓存地址可配置,默认选取用户的文档文件夹
-
更灵活的导出
支持分话导出和合并导出,会自动添加Kindle等阅读器可识别的书签
目前支持epub,pdf和zip三种格式
使用方法
工具共有如下几个命令:
-
bcdown info
- 显示配置信息,缓存大小,登录状态使用示例:
-
bcdown info
ℹ 加载配置文件:D:\Documents\bcdown/config.toml ℹ bcdown 版本: 0.2.1 ℹ 登录信息有效! ℹ 用户名:[数据删除] ℹ 漫币余额:[数据删除] ℹ 缓存目录:D:\Documents\bcdown/cache ℹ 缓存目录大小:4.629214677959681 GB ℹ 默认下载目录:D:\Download
-
-
bcdown login
- 登录B漫账号,通过二维码或者sessdata使用示例:
-
bcdown login -s [数据删除]
通过sessdata登录ℹ 加载配置文件:D:\Documents\bcdown/config.toml ℹ 登录信息有效! ℹ 用户名:[数据删除] ℹ 漫币余额:[数据删除]
-
bcdown login -q
通过扫描二维码登录ℹ 加载配置文件:D:\Documents\bcdown/config.toml ▀ ██▀▀▀▄ ▀ ▄▄ █▄ ▀▄▄ ▀█▀█▄▀▄ ██▀▀█▄ ▀▀ ▄▀ ▀ █ ▀ ▄ ▄▄▄▄▀▄█▀▀██ █ ▄█▀▀█ █ █▀█▄▄▀██▄ ▄▀▄▄▄▄▀▄▀▀▀▀█▀▀█▀ ▀▀▀ █▄█▀█▀██ ▄ ██▄ █▄ ██ ▄ ▄▀█▄ ██▀ ██ █▀ ▀▄▀▀█▀ █▀▄█▄ ▀█▄▄▄▀█▀▀▀ ▄▀▀▄▀ █▄ █ █▀█ █▄█ █▄ █▄▄ ▄▀ ██▄█▄ ▀▀█ ▄ ▄▄▀▄▀ █▄▄▄ ▄▄▀▄██▄█▄▀█▀▀▀▀▄█▀ ▀█▀ █▀█ ▀▀▄███▀█▄▀█ ▀ ▀▄▀▄█ ██ ████▀ █▀ ▄▄ █ ▀ █▄▄▀█▀█ ▄█▄▄▄ ▄▄▄█▀▀▄█▀█▀ █▀▀ █ ▄▄▀▄▀▄██▀ █ █▀ ▀ ▀▄█▄▀ ▄██▄▀█ ▀██ ▀ ▀▀▀ ▀ ▄▀▄▄▀ ▀▀ █▄██▄▀▄▀▀▀ █▀▀▀██▀▀ █▀▀▀▀▀█ ▄▀ █▀██▀▀▄█▄▀ ▄ ▀ █ ▀ █▄▀█▀ █ ███ █ █ ▄▄▄█▀▄▄▀█▀ ▄█▄█▀▀███▀█▄▀▀▄ █ ▀▀▀ █ ▀ ▀▀▀▄ ▀█ █ ██▄█ ▀▀▄▀ ▄ ▀█ ▀▀▀▀▀▀▀ ▀▀▀ ▀▀▀▀▀ ▀▀▀▀ ▀▀ ▀ ▀▀▀ ✔ 二维码已生成,请扫描二维码登录 ℹ 如果显示错误,请手动访问:[链接省略] ⠇ 等待确认...
备注:建议在支持色彩和符号终端中执行,如Windows Terminal
-
-
bcdown clear
- 清空缓存文件夹 -
bcdown search [链接或ID]
- 搜索某个漫画,列出它的全部章节 -
bcdown list
- 列出缓存中的漫画 -
bcdown fetch [链接或ID] <--range [开始]-[结束],[开始]-,-[结束]>
- 将一个漫画下载到本地使用示例:
-
bcdown fetch mc29911 --range 1-20,40-50,60-
下载 mc29911 第1话到第20话,第40话到第50话 和 第60话之后的所有到本地``
-
-
bcdown export [链接或ID] --format [epub或pdf] <--range [开始]-[结束],[开始]-,-[结束]> <-s 单独导出每一话> <--output [输出位置]> <-g [组大小>]
- 导出一个本地漫画
构建,编译,安装
和大部分rust crates一样,只需clone该存储库,之后执行cargo build --release
即可本地构建
备注:鉴于依赖项
printpdf
的特性,只有在添加--release
标签后,工具才会对PDF执行压缩
这个项目已经发布到crates.io
上了,因此可以通过cargo install bcdown
来安装
如果只是普通用户,可以下载编译好的可执行文件:Releases
Kindle使用指南
由于kindle阅读器暂时不支持epub格式的电子书,而pdf格式又过于庞大,不便于传输,这里有几种常见解决方案:
-
使用
bcdown export XXXX -s -f pdf
分话导出较小的pdf文件(编码较慢) 在存储空间较小的设备上需要较多次的传输
-
使用
bcdown export XXXX -f epub
导出一个大的epub文件(比pdf快),之后使用ebook-convert
,NeatConverter
等工具转换成 azw3 格式(这里推荐Neat Converter,对大文件支持比较好) 实测azw3拥有更好的压缩率,pdf(1.5G) > epub(300M) > azw3(150M)
由于不同的导出工具的区别,一些小功能可能会失效(如封面图片,标题等)图片和目录的显示已经经过测试,不会出现较大的问题
提交PR
联系方式
我的QQ:3525904273
更新记录
- 0.1.0 - 第一个版本,支持导出PDF
- 0.1.1 - 修复了bug,支持导出epub格式
- 0.1.2 - 修复bug
- 0.1.3 - 修复bug
- 0.1.4 - 修复bug,优化网络模块
- 0.1.5 - 加入导出zip文件的支持,修复bug,优化任务处理
- 0.1.6 - 删除书签中的ORD编码,修复epub中的格式问题
- 0.1.7 - 修复bug,修改压缩方式为Stored
- 0.2.0 - 范围下载/导出,优化网络,加入分组导出功能,升级依赖项
- 0.2.1 - 修复bug
- 0.2.2 - 修复bug
补充
这个工具只是个爬虫,不能下载没有解锁的漫画,因此解决不了钞能力的问题(
如果发现了Bug(可能会有很多,已经发现了不少),欢迎创建Issue
这个工具的更新会很频繁,建议保持使用最新版
由于没有限速功能,短时间内大量的网络请求可能会对B漫造成一定负载。建议不要频繁进行下载操作,尽管目前没有因下载而被封号的案例,但B漫拥有封禁的权力。使用本工具造成的一切损失请自行承担!