Skip to main content

Python API For JMComic (禁漫天堂)

Project description

Python API For JMComic (禁漫天堂)

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

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

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

安装教程

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

    pip install jmcomic -i https://pypi.org/project --upgrade
    
  • 本地安装

    pip install -e ./
    

快速上手

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

import jmcomic  # 导入此模块,需要先安装.
jmcomic.download_album('422866')  # 传入要下载的album的id,即可下载整个album到本地.
# 上面的这行代码,还有一个可选参数option: JmOption,表示配置项,
# 配置项的作用是告诉程序下载时候的一些选择,
# 比如,要下载到哪个文件夹,使用怎样的路径组织规则(比如[/作者/本子id/图片] 或者 [/作者/本子名称/图片]).
# 如果没有配置,则会使用 JmOption.default(),下载的路径是[当前工作文件夹/本子名称/图片].
# 如果你想要配置,请参考文件 assets/config/常用配置介绍.yml
  • v2.2.9: 新增命令行调用方式,上述的代码可以转为一行命令
# 下载album_id为422866的本子
$ jmcomic 422866
# 更多用法请参考文件 usage/usage_cl.py (命令行使用介绍)

进阶使用

进阶使用可以参考本repo下usage文件夹内的示例代码文件,下面是各个文件的作用,你可以挑感兴趣的阅读:

  • API上手介绍: getting_started.py
  • 命令行使用介绍: usage_cl.py
  • 使用API实现简单功能: usage_simple.py
  • 演示jmcomic模块的可自定义功能点: usage_custom.py
  • 使用API的Filter过滤功能: usage_feature_filter.py
  • 演示jmcomic模块的Plugin插件体系: usage_feature_plugin.py
  • 演示一个综合使用实例: usage_advanced.py
    • 包括6个功能需求的介绍、实现方案和完整运行日志
    • 实现方案非常简洁,充分jmcomic的便利性,以及强大的插件扩展机制

以及一些趣味用法:

  • 测试你的ip可以访问哪些禁漫域名: pick_domain.py
  • 基于GitHub Actions下载本子: workflow_download.py

项目特点

  • 绕过Cloudflare的反爬虫
  • 支持使用命令行下载本子,无需写Python代码,简单易用
  • 支持使用GitHub Actions下载本子,网页上直接输入本子id就能下载(教程:使用GitHub Actions下载禁漫本子
  • 可配置性强
    • 不配置也能使用,十分方便
    • 配置可以从配置文件生成,支持多种文件格式
    • 配置点有:是否使用磁盘缓存 并发下载图片数 图片类型转换 下载路径 请求元信息(headers,cookies,proxies)
  • 可扩展性强
    • 支持Plugin插件,可以方便地扩展功能,以及使用别人的插件
      • 目前内置支持的插件有:登录插件 硬件占用监控插件 只下载新章插件 压缩文件插件
    • 支持自定义本子/章节/图片下载前后的回调函数
    • 支持自定义debug日志
    • 支持自定义类:Downloader(负责调度)/Option(负责配置)/Client(负责请求)/实体类 等等
    • ......
  • 支持自动重试和域名切换机制
  • 多线程下载(可细化到一图一线程,效率极高)
  • 跟进了JM最新的图片分割算法(2023-02-08)

使用小说明

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

项目文件夹介绍

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

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

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

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

感谢以下项目

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

Readme Card

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jmcomic-2.2.10.tar.gz (35.0 kB view details)

Uploaded Source

Built Distribution

jmcomic-2.2.10-py3-none-any.whl (37.8 kB view details)

Uploaded Python 3

File details

Details for the file jmcomic-2.2.10.tar.gz.

File metadata

  • Download URL: jmcomic-2.2.10.tar.gz
  • Upload date:
  • Size: 35.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for jmcomic-2.2.10.tar.gz
Algorithm Hash digest
SHA256 c7af42432ddf82bc81a66e32dbddd215a5639253c4d459285b76216db1b9edf9
MD5 1523c2906cbeb0df7eed43f154db85cc
BLAKE2b-256 34f044865b8ddd0307cfadc0544039af219feeeb825f8948db43f7177f6e175f

See more details on using hashes here.

File details

Details for the file jmcomic-2.2.10-py3-none-any.whl.

File metadata

  • Download URL: jmcomic-2.2.10-py3-none-any.whl
  • Upload date:
  • Size: 37.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for jmcomic-2.2.10-py3-none-any.whl
Algorithm Hash digest
SHA256 dfd1dc009c13d547c8c750a08c10c953b4b9b08e7b55fab95e5b863a714d1fd8
MD5 552b9f0b653c8c3f1acfeddb2dfdcffa
BLAKE2b-256 c627afdeb0b2079533ae8356bfdcd15ccb55c13fc475f71f643ea6d884ca29c7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page