Python API for JMComic | 提供Python API访问禁漫天堂,同时支持网页端和移动端 | 禁漫天堂GitHub Actions下载器🚀
Go to file
hect0x7 49c489195b
Some checks failed
Auto Release & Publish / release (push) Has been cancelled
v2.6.6: 更新禁漫APP端域名服务器的地址 (#473)
2025-08-31 16:31:40 +08:00
.github v2.6.3: 更新禁漫域名服务器地址,优化文档 (#455) 2025-07-17 00:59:36 +08:00
assets v2.6.6: 更新禁漫APP端域名服务器的地址 (#473) 2025-08-31 16:31:40 +08:00
src/jmcomic v2.6.6: 更新禁漫APP端域名服务器的地址 (#473) 2025-08-31 16:31:40 +08:00
tests/test_jmcomic v2.6.3: 更新禁漫域名服务器地址,优化文档 (#455) 2025-07-17 00:59:36 +08:00
usage v2.5.3: 紧急修复域名切换重试机制,优化异常机制和GitHub Actions的异常处理 (#206) 2024-01-30 19:59:33 +08:00
.gitignore init commit 2023-04-02 22:19:44 +08:00
.readthedocs.yaml v2.3.10: 搭建readthedocs文档网站并迁移所有文档,新增插件—下载图片后缀过滤器,优化代码。(#152) 2023-10-23 23:57:31 +08:00
LICENSE init commit 2023-04-02 22:19:44 +08:00
pyproject.toml v2.6.3: 更新禁漫域名服务器地址,优化文档 (#455) 2025-07-17 00:59:36 +08:00
README.md v2.6.3: 更新禁漫域名服务器地址,优化文档 (#455) 2025-07-17 00:59:36 +08:00
requirements-dev.txt Actions测试依赖修正 2025-04-03 01:24:20 +08:00
setup.py v2.5.31: pip包支持python3.13 2025-03-08 23:23:28 +08:00

Python API For JMComic (禁漫天堂)

本项目封装了一套可用于爬取JM的Python API.

你可以通过简单的几行Python代码实现下载JM上的本子到本地并且是处理好的图片。

【指路】教程使用GitHub Actions下载禁漫本子

【指路】教程:导出并下载你的禁漫收藏夹数据

友情提示珍爱JM为了减轻JM的服务器压力请不要一次性爬取太多本子西门🙏🙏🙏.

项目介绍

本项目的核心功能是下载本子。

基于此,设计了一套方便使用、便于扩展,能满足一些特殊下载需求的框架。

目前核心功能实现较为稳定,项目也处于维护阶段。

除了下载功能以外,也实现了其他的一些禁漫接口,按需实现。目前已有功能:

  • 登录
  • 搜索本子(支持所有搜索项)
  • 图片下载解码
  • 分类/排行榜
  • 本子/章节详情
  • 个人收藏夹
  • 接口加解密APP的接口

安装教程

⚠如果你没有安装过Python需要先安装Python再执行下面的步骤且版本需要>=3.7点我去python官网下载

  • 通过pip官方源安装推荐并且更新也是这个命令

    pip install jmcomic -i https://pypi.org/project -U
    
  • 通过源代码安装

    pip install git+https://github.com/hect0x7/JMComic-Crawler-Python
    

快速上手

1. 下载本子方法

只需要使用如下代码,就可以下载本子JM422866的所有章节的图片:

import jmcomic  # 导入此模块,需要先安装.
jmcomic.download_album('422866')  # 传入要下载的album的id即可下载整个album到本地.

上面的 download_album方法还有一个参数option,可用于控制下载配置,配置包括禁漫域名、网络代理、图片格式转换、插件等等。

你可能需要这些配置项。推荐使用配置文件创建option用option下载本子见下章

2. 使用option配置来下载本子

  1. 首先,创建一个配置文件,假设文件名为 option.yml

    该文件有特定的写法,你需要参考这个文档 → 配置文件指南

    下面做一个演示假设你需要把下载的图片转为png格式你应该把以下内容写进option.yml

download:
  image:
    suffix: .png # 该配置用于把下载的图片转为png格式
  1. 第二步运行下面的python代码
import jmcomic

# 创建配置对象
option = jmcomic.create_option_by_file('你的配置文件路径,例如 D:/option.yml')
# 使用option对象来下载本子
jmcomic.download_album(422866, option)
# 等价写法: option.download_album(422866)

3. 使用命令行

如果只想下载本子,使用命令行会比上述方式更加简单直接

例如在windows上直接按下win+r键输入jmcomic xxx就可以下载本子。

示例:

下载本子422866的命令

jmcomic 422866

同时下载本子123, 章节456的命令

jmcomic 123 p456

命令行模式也支持自定义option你可以使用环境变量或者命令行参数

a. 通过命令行--option参数指定option文件路径

jmcomic 123 --option="D:/a.yml"

b. 配置环境变量 JM_OPTION_PATH 为option文件路径推荐

请自行google配置环境变量的方式或使用powershell命令: setx JM_OPTION_PATH "D:/a.yml" 重启后生效

jmcomic 123

进阶使用

请查阅文档首页→jmcomic.readthedocs.io

提示jmcomic提供了很多下载配置项大部分的下载需求你都可以尝试寻找相关配置项或插件来实现。

项目特点

  • 绕过Cloudflare的反爬虫

  • 实现禁漫APP接口最新的加解密算法 (1.6.3)

  • 用法多样:

  • 支持网页端移动端两种客户端实现,可通过配置切换(移动端不限ip兼容性好网页端限制ip地区但效率高

  • 支持自动重试和域名切换机制

  • 多线程下载(可细化到一图一线程,效率极高)

  • 可配置性强

    • 不配置也能使用,十分方便
    • 配置可以从配置文件生成,支持多种文件格式
    • 配置点有:请求域名 客户端实现 是否使用磁盘缓存 同时下载的章节/图片数量 图片格式转换 下载路径规则 请求元信息headers,cookies,proxies
  • 可扩展性强

    • 支持自定义本子/章节/图片下载前后的回调函数
    • 支持自定义类:Downloader负责调度 Option负责配置 Client负责请求 实体类
    • 支持自定义日志、异常监听器
    • 支持Plugin插件可以方便地扩展功能以及使用别人的插件目前内置插件有
      • 登录插件
      • 硬件占用监控插件
      • 只下载新章插件
      • 压缩文件插件
      • 下载特定后缀图片插件
      • 发送QQ邮件插件
      • 自动使用浏览器cookies插件
      • 导出收藏夹为csv文件插件
      • 合并所有图片为pdf文件插件
      • 合并所有图片为长图png插件
      • 重复文件检测删除插件
      • 网页观看本地章节插件

使用小说明

  • Python >= 3.7建议3.9以上因为jmcomic的依赖库可能会不支持3.9以下的版本。
  • 个人项目文档和示例会有不及时之处可以Issue提问

项目文件夹介绍

  • .githubGitHub Actions配置文件

  • assets存放一些非代码的资源文件

    • docs项目文档
    • option存放配置文件
  • src存放源代码

    • jmcomicjmcomic模块
  • tests测试目录存放测试代码使用unittest

  • usage用法目录存放示例/使用代码

感谢以下项目

图片分割算法代码+禁漫移动端API

Repo Card