[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71139":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":37,"discoverSource":38},71139,"JMComic-Crawler-Python","hect0x7\u002FJMComic-Crawler-Python","hect0x7","Python API for JMComic | 提供Python API访问禁漫天堂，同时支持网页端和移动端 | 禁漫天堂GitHub Actions下载器🚀","https:\u002F\u002Fjmcomic.readthedocs.io\u002Fzh-cn\u002Flatest\u002Foption_file_syntax\u002F#",null,"Python",5990,10618,14,2,0,45,89,237,135,116,"MIT License",false,"master",[26,27,28,29,30,31,32,33],"18comic","crawler","downloader","github-actions","jmcomic","pypi","python","readthedocs","2026-06-12 04:00:59","\u003C!-- 顶部标题 & 统计徽章 -->\n\u003Cdiv align=\"center\">\n  \u003Ch1 style=\"margin-top: 0\" align=\"center\">Python API for JMComic\u003C\u002Fh1>\n\n  \u003Cp align=\"center\">\n    \u003Cstrong>简体中文\u003C\u002Fstrong> •\n    \u003Ca href=\".\u002Fassets\u002Freadme\u002FREADME-en.md\">English\u003C\u002Fa> •\n    \u003Ca href=\".\u002Fassets\u002Freadme\u002FREADME-jp.md\">日本語\u003C\u002Fa> •\n    \u003Ca href=\".\u002Fassets\u002Freadme\u002FREADME-kr.md\">한국어\u003C\u002Fa>\n  \u003C\u002Fp>\n\n  \u003Cp align=\"center\">\n  \u003Cstrong>提供 Python API 访问禁漫天堂（网页端 & 移动端），集成 GitHub Actions 下载器🚀\u003C\u002Fstrong>\n  \u003C\u002Fp>\n\n[![GitHub](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-GitHub-181717?logo=github)](https:\u002F\u002Fgithub.com\u002Fhect0x7)\n[![Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fhect0x7\u002FJMComic-Crawler-Python?color=orange&label=stars&style=flat)](https:\u002F\u002Fgithub.com\u002Fhect0x7\u002FJMComic-Crawler-Python\u002Fstargazers)\n[![Forks](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Fhect0x7\u002FJMComic-Crawler-Python?color=green&label=forks&style=flat)](https:\u002F\u002Fgithub.com\u002Fhect0x7\u002FJMComic-Crawler-Python\u002Fforks)\n[![GitHub latest releases](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fhect0x7\u002FJMComic-Crawler-Python?color=blue&label=version)](https:\u002F\u002Fgithub.com\u002Fhect0x7\u002FJMComic-Crawler-Python\u002Freleases\u002Flatest)\n[![PyPI - Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fjmcomic?style=flat&color=hotpink)](https:\u002F\u002Fpepy.tech\u002Fprojects\u002Fjmcomic)\n[![Licence](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fhect0x7\u002FJMComic-Crawler-Python?color=red)](https:\u002F\u002Fgithub.com\u002Fhect0x7\u002FJMComic-Crawler-Python)\n\n\u003C\u002Fdiv>\n\n\n> 本项目封装了一套可用于爬取JM的Python API.\n> \n> 你可以通过简单的几行Python代码，实现下载JM上的本子到本地，并且是处理好的图片。\n> \n> **🧭 快速指路**\n> - [教程：使用 GitHub Actions 下载禁漫本子](.\u002Fassets\u002Fdocs\u002Fsources\u002Ftutorial\u002F1_github_actions.md)\n> - [教程：导出并下载你的禁漫收藏夹数据](.\u002Fassets\u002Fdocs\u002Fsources\u002Ftutorial\u002F10_export_favorites.md)\n> - [教程：下载后转为 PDF \u002F ZIP \u002F 长图](.\u002Fassets\u002Fdocs\u002Fsources\u002Ftutorial\u002F13_export_and_feature.md)\n> - [塔台广播：欢迎各位机长加入并贡献代码](.\u002F.github\u002FCONTRIBUTING.md)\n> \n> **友情提示：珍爱JM，为了减轻JM的服务器压力，请不要一次性爬取太多本子，西门🙏🙏🙏**.\n> \n\n\n![introduction.jpg](.\u002Fassets\u002Fdocs\u002Fsources\u002Fimages\u002Fintroduction.jpg)\n\n\n## 项目介绍\n\n本项目的核心功能是下载本子。\n\n基于此，设计了一套方便使用、便于扩展，能满足一些特殊下载需求的框架。\n\n目前核心功能实现较为稳定，项目也处于维护阶段。\n\n除了下载功能以外，也实现了其他的一些禁漫接口，按需实现。目前已有功能：\n\n- 登录\n- 搜索本子（支持所有搜索项）\n- 图片下载解码\n- 分类\u002F排行榜\n- 本子\u002F章节详情\n- 个人收藏夹\n- 接口加解密（APP的接口）\n\n## 安装教程\n\n> ⚠如果你没有安装过 Python，需要先前往 [Python 官网下载](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F) 再执行以下步骤。\n>**推荐使用 Python 3.12及以上版本**\n\n* 通过pip官方源安装（推荐，并且更新也是这个命令）\n\n  ```shell\n  pip install jmcomic -U\n  ```\n* 通过源代码安装\n\n  ```shell\n  pip install git+https:\u002F\u002Fgithub.com\u002Fhect0x7\u002FJMComic-Crawler-Python\n  ```\n\n## 快速上手\n\n### 1. 下载本子方法\n\n只需要使用如下代码，就可以下载本子`JM123`的所有章节的图片：\n\n```python\nimport jmcomic  # 导入此模块，需要先安装.\njmcomic.download_album('123')  # 传入要下载的album的id，即可下载整个album到本地.\n```\n\n上面的 `download_album`方法还有一个参数`option`，可用于控制下载配置，配置包括禁漫域名、网络代理、图片格式转换、插件等等。\n\n你可能需要这些配置项。推荐使用配置文件创建option，用option下载本子，见下章：\n\n### 2. 使用option配置来下载本子\n\n1. 首先，创建一个配置文件，假设文件名为 `option.yml`\n\n   该文件有特定的写法，你需要参考这个文档 → [配置文件指南](.\u002Fassets\u002Fdocs\u002Fsources\u002Foption_file_syntax.md)\n\n   下面做一个演示，假设你需要把下载的图片转为png格式，你应该把以下内容写进`option.yml`\n\n```yml\ndownload:\n  image:\n    suffix: .png # 该配置用于把下载的图片转为png格式\n```\n\n2. 第二步，运行下面的python代码\n\n```python\nimport jmcomic\n\n# 创建配置对象\noption = jmcomic.create_option_by_file('你的配置文件路径，例如 D:\u002Foption.yml')\n# 使用option对象来下载本子\njmcomic.download_album(123, option)\n# 等价写法: option.download_album(123)\n```\n\n### 3. 使用命令行\n> 如果只想下载本子，使用命令行会比上述方式更加简单直接\n> \n> 例如，在windows上，直接按下 win+R 键，输入`jmcomic xxx`就可以下载本子。\n\n示例：\n\n下载本子123的命令\n\n```sh\njmcomic 123\n```\n同时下载本子123, 章节456的命令\n```sh\njmcomic 123 p456\n```\n\n命令行模式也支持自定义option，你可以使用环境变量或者命令行参数：\n\na. 通过命令行--option参数指定option文件路径\n\n```sh\njmcomic 123 --option=\"D:\u002Fa.yml\"\n```\n\nb. 配置环境变量 `JM_OPTION_PATH` 为option文件路径（推荐）\n\n> 请自行google配置环境变量的方式，或使用powershell命令:  `setx JM_OPTION_PATH \"D:\u002Fa.yml\"` 重启后生效\n\n```sh\njmcomic 123\n```\n\n### 4. 查看本子详情（jmv 命令）\n\n> `jmv` 命令用于快速查看本子详情，不做下载。\n> \n> **适用场景**：在某些网站上看到一串*神秘车号*，想快速看看具体是啥本子。此时只需copy原文本，按下 win+R，输入`jmv [粘贴内容]`即可\n>\n> 支持从任意文本中提取数字作为车号，方便直接粘贴各种格式的车号。\n\n示例：\n\n```sh\n# 直接输入车号\njmv 350234\n\n# 从混合文本中提取数字（提取出 350234）\njmv 350谁还没看过234\n\n# 指定option文件（也支持环境变量，用法同上）\njmv 350234 --option=\"D:\u002Fa.yml\"\n\n# -y 参数：执行完毕后直接退出，无需按回车确认\njmv 350234 -y\n```\n\n输出效果：\n\n```text\n🔍 正在查询 禁漫车号 - [350234] 的详情...\n\n──────────────────────────────────────────────────\n  📖 标题:  xxx\n  🆔 ID:    JM350234\n  🔗 链接:  https:\u002F\u002F18comic.vip\u002Falbum\u002F350234\u002F\n  ✍️ 作者:  Author1, Author2\n──────────────────────────────────────────────────\n  📅 发布日期:  2022-06-15\n  📅 更新日期:  2023-01-01\n  📄 总页数:    50\n  👀 观看:      2M\n  ❤️ 点赞:     77K\n  💬 评论:      9801\n──────────────────────────────────────────────────\n  🏷️ 标签:  标签1, 标签2, ...\n  🎭 人物:  角色A, 角色B, ...\n  📚 作品:  作品1, 作品2, ...\n──────────────────────────────────────────────────\n  📑 章节 (2):\n     第1話  上  (id: 350234)\n     第2話  下  (id: 350235)\n──────────────────────────────────────────────────\n\n[运行结束] 请按回车键关闭窗口... (下次运行可附加 -y 参数跳过确认)\n```\n\n\n\n## 进阶使用\n\n请查阅文档首页 → [jmcomic.readthedocs.io](https:\u002F\u002Fjmcomic.readthedocs.io\u002Fzh-cn\u002Flatest)\n\n或者查看github仓库的文档 → [github-repo-docs](https:\u002F\u002Fgithub.com\u002Fhect0x7\u002FJMComic-Crawler-Python\u002Fblob\u002Fmaster\u002Fassets\u002Fdocs\u002Fsources\u002Ftutorial\u002F0_common_usage.md)\n\n（提示：jmcomic提供了很多下载配置项，大部分的下载需求你都可以尝试寻找相关配置项或插件来实现。）\n\n## 项目特点\n\n- **绕过Cloudflare的反爬虫**\n- **实现禁漫APP接口最新的加解密算法 (1.6.3)**\n- 用法多样：\n\n  - GitHub\n    Actions：网页上直接输入本子id就能下载（[教程：使用GitHub Actions下载禁漫本子](.\u002Fassets\u002Fdocs\u002Fsources\u002Ftutorial\u002F1_github_actions.md)）\n  - 命令行：无需写Python代码，简单易用（[教程：使用命令行下载禁漫本子](.\u002Fassets\u002Fdocs\u002Fsources\u002Ftutorial\u002F2_command_line.md)）\n  - Python代码：最本质、最强大的使用方式，需要你有一定的python编程基础\n- 支持**网页端**和**移动端**两种客户端实现，可通过配置切换（**移动端不限ip兼容性好，网页端限制ip地区但效率高**）\n- 支持**自动重试和域名切换**机制\n- **多线程下载**（可细化到一图一线程，效率极高）\n- **可配置性强**\n\n  - 不配置也能使用，十分方便\n  - 配置可以从配置文件生成，支持多种文件格式\n  - 配置点有：`请求域名` `客户端实现` `是否使用磁盘缓存` `同时下载的章节\u002F图片数量` `图片格式转换` `下载路径规则` `请求元信息（headers,cookies,proxies)` `中文繁\u002F简转换` \n    等\n- **可扩展性强**\n\n  - 支持自定义本子\u002F章节\u002F图片下载前后的回调函数\n  - 支持自定义类：`Downloader（负责调度）` `Option（负责配置）` `Client（负责请求）` `实体类`等\n  - 支持自定义日志、异常监听器\n  - **支持Plugin插件，可以方便地扩展功能，以及使用别人的插件，目前内置插件有**：\n    - `登录插件`\n    - `硬件占用监控插件`\n    - `只下载新章插件`\n    - `压缩文件插件`\n    - `客户端代理插件`\n    - `下载特定后缀图片插件`\n    - `发送QQ邮件插件`\n    - `日志主题过滤插件`\n    - `自动获取浏览器cookies插件`\n    - `导出收藏夹为csv文件插件`\n    - `合并所有图片为pdf文件插件`\n    - `合并所有图片为长图png插件`\n    - `网页观看本地章节插件`\n    - `订阅更新插件`\n    - `小章节跳过插件`\n    - `重复文件检测删除插件`\n    - `路径字符串替换插件`\n    - `高级重试插件`\n    - `封面下载插件`\n\n## 使用小说明\n\n* 推荐使用 **Python 3.12+**，目前最低兼容版本为3.9。\n  > 注意：Python 3.9 及更早版本皆已于 2025 年彻底结束官方生命周期 (EOL)，使用3.9及以下随时有可能遇到第三方库不兼容的问题。\n\n* 个人项目，文档和示例会有不及时之处，可以Issue提问。\n\n## 项目文件夹介绍\n\n* .github：GitHub Actions配置文件\n* assets：存放一些非代码的资源文件\n\n  * docs：项目文档\n  * option：存放配置文件\n* src：存放源代码\n\n  * jmcomic：`jmcomic`模块\n* tests：测试目录，存放测试代码，使用unittest\n* usage：用法目录，存放示例\u002F使用代码\n\n## 感谢以下项目\n\n### 图片分割算法代码+禁漫移动端API\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftonquer\u002FJMComic-qt\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fgithub-readme-stats.vercel.app\u002Fapi\u002Fpin\u002F?username=tonquer&repo=JMComic-qt&theme=radical\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fgithub-readme-stats.vercel.app\u002Fapi\u002Fpin\u002F?username=tonquer&repo=JMComic-qt\" \u002F>\n    \u003Cimg alt=\"Repo Card\" src=\"https:\u002F\u002Fgithub-readme-stats.vercel.app\u002Fapi\u002Fpin\u002F?username=tonquer&repo=JMComic-qt\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n","该项目提供了一套用于访问和下载禁漫天堂资源的Python API，支持网页端和移动端，并集成了GitHub Actions下载器。核心功能包括登录、搜索、图片下载解码、分类\u002F排行榜查看及个人收藏夹管理等，具有良好的扩展性以满足特定需求。特别设计了接口加解密功能来处理APP端的数据交互。适用于需要批量获取或保存漫画资源的研究者、开发者以及爱好者，在确保遵守网站使用规则的前提下进行合理利用。","2026-06-11 03:36:05","high_star"]