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
进阶使用
进阶使用可以参考本repo下usage文件夹内的示例代码文件,下面是各个文件的作用,你可以挑感兴趣的阅读:
- API上手介绍:
getting_started.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的反爬虫
- 支持使用GitHub Actions下载本子,网页上直接输入本子id就能下载(教程:使用GitHub Actions下载禁漫本子)
- 可配置性强
- 不配置也能使用,十分方便
- 配置可以从配置文件生成,支持多种文件格式,无需写Python代码
- 配置点有:
是否使用磁盘缓存
并发下载图片数
图片类型转换
下载路径
请求元信息(headers,cookies,proxies)
等
- 可扩展性强
- 支持Plugin插件,可以方便地扩展功能,以及使用别人的插件
- 目前内置支持的插件有:
登录插件
硬件占用监控插件
只下载新章插件
压缩文件插件
- 目前内置支持的插件有:
- 支持自定义本子/章节/图片下载前后的回调函数
- 支持自定义debug日志的开关/格式
- 支持自定义Downloader/Option/Client/实体类
- ......
- 支持Plugin插件,可以方便地扩展功能,以及使用别人的插件
- 支持自动重试和域名切换机制
- 多线程下载(可细化到一图一线程,效率极高)
- 跟进了JM最新的图片分割算法(2023-02-08)
使用小说明
- Python >= 3.7
- 个人项目,文档和示例会有不及时之处,可以Issue提问
项目文件夹介绍
-
assets:存放一些非代码的资源文件
- config:存放配置文件
- docs:项目文档
-
src:存放源代码
- jmcomic:
jmcomic
模块
- jmcomic:
-
tests:测试目录,存放测试代码,使用unittest
-
usage:用法目录,存放示例/使用代码
感谢以下项目
图片分割算法代码+禁漫移动端API
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.7.tar.gz
(33.3 kB
view details)
Built Distribution
jmcomic-2.2.7-py3-none-any.whl
(35.8 kB
view details)
File details
Details for the file jmcomic-2.2.7.tar.gz
.
File metadata
- Download URL: jmcomic-2.2.7.tar.gz
- Upload date:
- Size: 33.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f2b92d08151fee2436207bad37218e83256a3cb882dd97df36eb9d98805f983 |
|
MD5 | 5b629e272bc03bfefdb4236932e1b57d |
|
BLAKE2b-256 | a580acf14dd7f569b4e06cc4b359fc7cecf9a7c34de82608823c36341a26dba5 |
File details
Details for the file jmcomic-2.2.7-py3-none-any.whl
.
File metadata
- Download URL: jmcomic-2.2.7-py3-none-any.whl
- Upload date:
- Size: 35.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | be6f2c8a00042f5b10daca248c5e5e5dca0939764098749afb07d03ca255381a |
|
MD5 | 9eae9b8f0b14026e8d31be38e5b45df6 |
|
BLAKE2b-256 | a23790c5ac261d2d1cbafe38d415f3217316e406c3f1cdc28564e3b6b34c6344 |