JMComic-Crawler-Python/README.md

97 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Python API For JMComic (禁漫天堂)
封装了一套可用于爬取JM的Python API.
简单来说就是可以通过简单的几行Python代码实现下载JM上的本子到本地并且是处理好的图片.
**友情提示珍爱JM为了减轻JM的服务器压力请不要一次性爬取太多本子西门🙏🙏🙏**.
## 安装教程
* 通过pip官方源安装推荐并且更新也是这个命令
```shell
pip install jmcomic -i https://pypi.org/project --upgrade
```
* 通过源代码安装
```shell
pip install git+https://github.com/hect0x7/JMComic-Crawler-Python
```
## 快速上手
使用下面的两行代码即可实现功能把某个本子album里的所有章节photo下载到本地
```python
import jmcomic # 导入此模块,需要先安装.
jmcomic.download_album('422866') # 传入要下载的album的id即可下载整个album到本地.
```
* v2.2.9: 新增命令行调用方式,上述的代码可以转为一行命令
```bash
# 下载album_id为422866的本子
$ jmcomic 422866
```
## 项目特点
- **绕过Cloudflare的反爬虫**
- 用法多样:
- GitHub Actions网页上直接输入本子id就能下载[教程使用GitHub Actions下载禁漫本子](./assets/docs/sources/tutorial/1_github_actions.md)
- 命令行无需写Python代码简单易用[教程:使用命令行下载禁漫本子](./assets/docs/sources/tutorial/2_command_line.md)
- Python代码最直接的使用方式需要你有一定的python编程基础
- 支持**网页端**和**移动端**两种客户端实现,可通过配置切换(**移动端不限ip兼容性好网页端限制ip地区但效率高**
- 支持**自动重试和域名切换**机制
- **多线程下载**(可细化到一图一线程,效率极高)
- **可配置性强**
- 不配置也能使用,十分方便
- 配置可以从配置文件生成,支持多种文件格式
- 配置点有:`请求域名` `客户端实现` `是否使用磁盘缓存` `同时下载的章节/图片数量` `图片格式转换` `下载路径规则` `请求元信息headers,cookies,proxies`
- **可扩展性强**
- **支持Plugin插件可以方便地扩展功能以及使用别人的插件**
- 目前内置支持的插件有:`登录插件` `硬件占用监控插件` `只下载新章插件` `压缩文件插件` `下载特定后缀图片插件`
- 支持自定义本子/章节/图片下载前后的回调函数
- 支持自定义debug日志
- 支持自定义类:`Downloader负责调度` `Option负责配置` `Client负责请求` `实体类`
## 进阶使用
进阶使用请查阅文档:[文档](https://jmcomic.readthedocs.io/en/latest)
下面列出一些常用的文档链接:
* [option配置文件语法](./assets/docs/sources/option_file_syntax.md)
* [常用类和方法演示(下载本子、获取实体类、搜索本子)](assets/docs/sources/tutorial/3_demo.md)
* [命令行使用教程](assets/docs/sources/tutorial/2_command_line.md)
* [GitHub Actions使用教程](./assets/docs/sources/tutorial/1_github_actions.md)
* [插件机制](assets/docs/sources/tutorial/6_plugin.md)
* [下载过滤器机制](assets/docs/sources/tutorial/5_filter.md)
## 使用小说明
* Python >= 3.7
* 个人项目文档和示例会有不及时之处可以Issue提问
## 项目文件夹介绍
* assets存放一些非代码的资源文件
* config存放配置文件
* docs项目文档
* src存放源代码
* jmcomic`jmcomic`模块
* tests测试目录存放测试代码使用unittest
* usage用法目录存放示例/使用代码
## 感谢以下项目
### 图片分割算法代码+禁漫移动端API
[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=tonquer&repo=JMComic-qt)](https://github.com/tonquer/JMComic-qt)