bcdown

Crates.iobcdown
lib.rsbcdown
version0.2.2
sourcesrc
created_at2022-05-17 07:12:34.591166
updated_at2022-07-27 04:11:37.853406
descriptionBilibili漫画下载器,written in Rust,支持epub pdf zip格式
homepage
repositoryhttps://github.com/lihe07/bilibili_comics_downloader
max_upload_size
id588187
size153,817
He Li (lihe07)

documentation

README

bcdown

Bilibili漫画下载器,written in Rust

这个项目用来接替之前的python版

特性

  1. 异步高性能

    网络相关操作使用了基于tokioreqwests,较多线程版有较大的性能提升

  2. 更加灵活的登录

    工具支持 扫码登录SESSDATA登录 两种登录方式,且能保存登录结果,无需每次重复登录

  3. 更完善的缓存功能

    工具会缓存更多的内容以减少网络请求,缓存地址可配置,默认选取用户的文档文件夹

  4. 更灵活的导出

    支持分话导出和合并导出,会自动添加Kindle等阅读器可识别的书签

    目前支持epubpdfzip三种格式

使用方法

工具共有如下几个命令:

  • 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格式又过于庞大,不便于传输,这里有几种常见解决方案:

  1. 使用 bcdown export XXXX -s -f pdf 分话导出较小的pdf文件(编码较慢)

    ​ 在存储空间较小的设备上需要较多次的传输

  2. 使用 bcdown export XXXX -f epub 导出一个大的epub文件(比pdf快),之后使用 ebook-convert, NeatConverter 等工具转换成 azw3 格式(这里推荐Neat Converter,对大文件支持比较好)

    ​ 实测azw3拥有更好的压缩率,pdf(1.5G) > epub(300M) > azw3(150M)

    ​ 由于不同的导出工具的区别,一些小功能可能会失效(如封面图片,标题等)图片和目录的显示已经经过测试,不会出现较大的问题

联系方式

我的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漫拥有封禁的权力。使用本工具造成的一切损失请自行承担!

Commit count: 78

cargo fmt