No Description

hect0x7 f6692eb185 【GitHub Actions】修复单章节下载无效的问题 1 year ago
.github ae96e20cc0 v2.4.7: 实现收藏本子功能,优化获取收藏夹功能传参,优化Headers和域名的处理; 更新文档、dispatch工作流文案+脚本. (#176) 1 year ago
assets ae96e20cc0 v2.4.7: 实现收藏本子功能,优化获取收藏夹功能传参,优化Headers和域名的处理; 更新文档、dispatch工作流文案+脚本. (#176) 1 year ago
src ae96e20cc0 v2.4.7: 实现收藏本子功能,优化获取收藏夹功能传参,优化Headers和域名的处理; 更新文档、dispatch工作流文案+脚本. (#176) 1 year ago
tests ae96e20cc0 v2.4.7: 实现收藏本子功能,优化获取收藏夹功能传参,优化Headers和域名的处理; 更新文档、dispatch工作流文案+脚本. (#176) 1 year ago
usage f6692eb185 【GitHub Actions】修复单章节下载无效的问题 1 year ago
.gitignore 1df7e64f8c init commit 2 years ago
.readthedocs.yaml 4eeee1e8d2 v2.3.10: 搭建readthedocs文档网站并迁移所有文档,新增插件—下载图片后缀过滤器,优化代码。(#152) 1 year ago
LICENSE 1df7e64f8c init commit 2 years ago
README.md 7bcc28f97d v2.4.5: 修正搜索页面的tag标签的正则表达式,增加自动关闭无意义PR的工作流 (#170) 1 year ago
requirements-dev.txt 87ed6bce83 v2.3.15: 修复移动端未携带cookies导致跳转同本问题; 新增插件【debug日志主题过滤器】; 新增插件参数校验异常类及其相应的异常处理策略 (ignore, debug, raise)。 1 year ago
setup.py 6ab7456f99 v2.4.4: 优化GitHub Actions、文档、注释、代码结构 (#168) 1 year ago

README.md

Python API For JMComic (禁漫天堂)

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

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

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

项目介绍

本项目的核心功能是下载本子,基于此,设计了一套方便使用、便于扩展,能满足一些特殊下载需求的框架。

除了下载功能以外,也实现了其他的一些禁漫接口,例如登录、搜索、收藏夹等等,按需实现。

目前核心功能实现较为稳定,项目也处于维护阶段(因为禁漫接口经常变动,需要经常维护)。

安装教程

  • 通过pip官方源安装(推荐,并且更新也是这个命令)
  pip install jmcomic -i https://pypi.org/project --upgrade
  • 通过源代码安装
  pip install git+https://github.com/hect0x7/JMComic-Crawler-Python

快速上手

使用下面的两行代码,即可实现功能:把某个本子(album)里的所有章节(photo)下载到本地

import jmcomic  # 导入此模块,需要先安装.
jmcomic.download_album('422866')  # 传入要下载的album的id,即可下载整个album到本地.
  • v2.2.9: 新增命令行调用方式,上述的代码可以转为一行命令
# 下载album_id为422866的本子
$ jmcomic 422866

项目特点

  • 绕过Cloudflare的反爬虫
  • 实现禁漫APP接口最新的加解密算法 (1.6.3)
  • 用法多样:

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

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

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

  • 可配置性强

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

    • 支持Plugin插件,可以方便地扩展功能,以及使用别人的插件
    • 目前内置支持的插件有:登录插件 硬件占用监控插件 只下载新章插件 压缩文件插件 下载特定后缀图片插件 发送QQ邮件插件 日志主题过滤插件 自动使用浏览器cookies插件
    • 支持自定义本子/章节/图片下载前后的回调函数
    • 支持自定义日志
    • 支持自定义类:Downloader(负责调度) Option(负责配置) Client(负责请求) 实体类

进阶使用

进阶使用请查阅文档:文档

下面列出一些常用的文档链接:

使用小说明

  • Python >= 3.7
  • 个人项目,文档和示例会有不及时之处,可以Issue提问

项目文件夹介绍

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

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

    • jmcomic:jmcomic模块
  • tests:测试目录,存放测试代码,使用unittest

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

感谢以下项目

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

Readme Card