一本漫画

尊重版权,请支持正版

该项目仅供技术研究使用,请勿用于非法用途,否则后果自负

通过本工具下载或生成的资源禁止传播分享!禁止利用该项目从事营利性活动!

项目地址: https://github.com/hardwarecode/onecomic

安装 / 升级步骤

自己找安装 Python 的教程(Python 版本大于等于 3.6)

安装 nodejs 环境,自己找教程安装

1
2
3
4
5
6
# 检查python版本
python --version
# 检查pip版本
pip --version


1
2
3
4
5
6
7
# 在线安装/升级(最新版本)
pip install -U onecomic

# 查看帮助
onecomic --help


常规使用

Windows 下,以下所有示例命令需要添加python -m前缀

如: python -m onecomic --url "http://ac.qq.com/Comic/ComicInfo/id/505430"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 注意参数里的 - 和 -- 的区别
# 从章节列表页面的URL 下载漫画的最新一集
onecomic --url "http://ac.qq.com/Comic/ComicInfo/id/505430"

# 下载漫画 id=505430 最新一集 注意不同站点的漫画id区别
onecomic -s qq -id=505430

# 下载所有章节
onecomic -s qq -id 505430 --all

# 下载第800集
onecomic -s qq -id 505430 -c 800

# 下载倒数第二集
onecomic -s qq -id 505430 -c -2

# 下载1到5集,7集,9到10集
onecomic -s qq -id 505430 -c 1-5,7,9-10

# 拼接成长图
onecomic -s qq -id 505430 --single-image --quality 95 --max-height 20000

# 压缩成zip文件
onecomic -s qq -id=505430 --zip

# 设置代理
onecomic -s qq -id 505430 --proxy "socks5://127.0.0.1:1080"

# 自定义保存目录
onecomic -s qq -id=505430 --output MyComicBook

# 将多话合并到单个文件夹和zip文件
onecomic -s manhuagui -id 1128 -c 320-322 --merge --merge-zip

# 下载单行本
onecomic -s manhuagui -id 1128 --ext-name 单行本 -c -1

# 跟据名字搜索comicid
onecomic -s qq --name 海贼

# 生成pdf文件
# 注意: 生成pdf文件需要额外安装依赖,需要先执行 pip install img2pdf 或 pip install reportlab
onecomic -s qq -id 505430 --pdf

# 推送到邮箱
# 注意: 发送到邮箱需预先配置好信息(详情请看配置文件部分)
onecomic -s qq -id 505430 --pdf --mail --config config.ini


从其它站点下载,注意不同站点的 comicid 区别

1
2
3
4
5
6
7
8
9
10
# 从哔哩哔哩漫画下载
onecomic -s bilibili -id mc24742 -c 1

# 从有妖气漫画下载
onecomic -s u17 -id 195 -c 1

# 从章节列表页面的URL下载
onecomic --url "https://manga.bilibili.com/detail/mc28603" -c 1


关于登录

登录后可下载已购买的付费资源

  1. 安装 EditThisCookie 插件

  2. 在浏览器上登录某个站点,然后通过插件导出某个站点的 cookies,并保存到本地文件 如qq.json

1
2
3
onecomic -s qq -id=505430 -c -1 --cookies-path="qq.json"


高级批量下载

1
2
3
4
# 通过指定的URL文件列表批量下载
onecomic --url-file test/test-url-file.txt


文件示例test/test-url-file.txt

1
2
3
4
5
6
# 海贼王
http://ac.qq.com/Comic/ComicInfo/id/505430
# 雏蜂
https://www.u17.com/comic/195.html



1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 有些站点不一定支持,其它的通用参数也适用,可自行组合
# 下载最近更新页面的1到10页 所有漫画的最新一集
onecomic -s nvshens --latest-all --latest-page 1-10

# 展示支持的标签
onecomic -s nvshens --show-tags

# 下载标签搜索结果页面的1到10页 所有漫画的全集
onecomic -s nvshens --tag-all --tag 女神 --tag-page 1-10 --all

# 下载搜索结果的所有漫画的全集
onecomic -s nhentai --search-all --search-name 汉化 --search-page 1 --all


其它说明

cookies 使用说明

  • 下载付费内容需要 cookies,Toomics、qootoon 站点下载 R18 内容也需要 cookies

  • 最好保证脚本与在浏览器导出的 cookies 在同一个网络环境(如果浏览器使用代理,脚本也要使用同样的代理环境)

  • 若使用了 cookies 还是下载不了,需检查账号在站点浏览是否正常,若正常浏览则重新导出一份新的 cookies 文件再做尝试

  • 若还是下载不了,请加群反馈。付费内容的下载问题还请提供 cookies 或账号(私聊群主),不提供大概率会被无视

关于 cocomanhua 的下载

  1. 安装 nodejs 环境

  2. 安装 crypto-js 依赖,命令:npm install crypto-js,默认在当前目录下生成node_modules目录

  3. 下载 onecomic -s cocomanhua -id 12187 或者 onecomic -s cocomanhua --node-modules ./node_modules

配置文件

根据示例创建配置文件

配置文件示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
[mail]

# SMTP主机 发送账户是163邮箱则设置为 smtp.163.com
smtp_server=smtp.qq.com

# SMTP服务端口(SSL)
smtp_port=465

# 发送者账户
sender=xx.qq.com

# 登录失败可能需要使用授权码登录 https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
# 发送者账户密码或者授权码
sender_passwd=密码或授权码

# 邮件接收者列表,多个则以半角逗号隔开。如 xxx@qq.com,yyy@qq.com
receivers=11111@qq.com,22222@qq.com


[crawler]
# 默认的下载目录
# download_dir=/home/xxx/MyComicBook

# 配置指定站点代理地址
# proxy_18comic=socks5://127.0.0.1:1080
# proxy_manhuagui=socks5://127.0.0.1:1080
# proxy_nhentai=socks5://127.0.0.1:1080
# proxy_wnacg=socks5://127.0.0.1:1080
# proxy_acg456=socks5://127.0.0.1:1080
# proxy_mh1234=socks5://127.0.0.1:1080
# proxy_177pic=socks5://127.0.0.1:1080
# proxy_18hmmcg=socks5://127.0.0.1:1080
# proxy_xiuren=socks5://127.0.0.1:1080
# proxy_twhentai=socks5://127.0.0.1:1080
# proxy_copymanga=socks5://127.0.0.1:1080
# proxy_toomics=socks5://127.0.0.1:1080
# proxy_webtoons=socks5://127.0.0.1:1080


# webdriver 配置
# driver_type=Chrome
# driver_path=/home/xxx/chromedriver_win32/chromedriver.exe

# node模块位置
# node_modules=/home/xxx/js/node_modules

# cookies存放目录(自动读取该目录下的cookeis文件),文件名命名规范: 如 toomics.json qq.json {site}.json
# cookies_dir=/home/xxx/cookies

# 长图质量 最大100
# quality=95
# 长图最大高度 最大65500
# max_height=20000

# 图片下载超时时间 单位秒
image_timeout=30

# 站点访问超时时间 单位秒
crawler_timeout=30

# 每个章节下载时间间隔 单位秒
crawler_delay=0

将上述配置保存为config.ini

onecomic -s u17 -id 195 -c 1会默认读取当前目录下的config.ini配置文件

或者通过环境变量配置默认的配置文件

1
2
# 将以下命令添加到 ~/.bashrc 或 ~/.zshrc 文件末尾
export ONECOMIC_CONFIG_FILE="/home/xxx/MyConfig/config.ini"

也可以通过参数指定配置文件onecomic -s u17 -id 195 -c 1 --config config.ini

一本漫画API

尊重版权,请支持正版

该项目仅供技术研究使用,请勿用于非法用途,否则后果自负

通过本工具下载或生成的资源禁止传播分享!禁止利用该项目从事营利性活动!

项目地址: https://github.com/hardwarecode/onecomic-api

接口部署

自己找安装Python的教程(Python版本大于等于3.6)

安装nodejs环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
git clone git@github.com:hardwarecode/onecomic-api.git

# 切换工作目录
cd onecomic-api

# 安装依赖
pip install -r requirements.txt

# 复制`api/config.py.example`并命名为`api/config.py` 并根据实际情况修改`api/config.py`的参数
# 注意配置 api/config.py NODE_MODULES
cp api/config.py.example api/config.py

# 启动接口
gunicorn 'api:create_app()' -b "127.0.0.1:8000" --workers=2 --timeout=10

# 查看可选的配置选项 gunicorn --help
# 文档 http://docs.gunicorn.org/en/latest/settings.html

更新

1
2
3
4
5
6
7
# 只更新onecomic(修复bug、添加更多的源等)
pip install -U onecomic

# 更新项目。注意`api/config.py.example`有无新增的配置,如果有的话需要重新配置`api/config.py`
git pull
pip install -U onecomic
pip install -r requirements.txt

接口文档

1.1 获取漫画概要信息

1
GET /api/<site>/comic/<comicid>

请求示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
curl "http://127.0.0.1:8000/api/bilibili/comic/24742"
{
"author": "尾田荣一郎 集英社",
"chapters": [
{
"chapter_number": 1,
"source_url": "https://manga.bilibili.com/m/mc24742/218087",
"title": "ROMANCE DAWN冒险的序幕"
},
{
"chapter_number": 2,
"source_url": "https://manga.bilibili.com/m/mc24742/218093",
"title": "戴草帽的路飞"
}
],
"cover_image_url": "http://i0.hdslb.com/bfs/manga-static/8cfad691e8717f8c189f2b5e93a39d272708f91a.jpg",
"crawl_time": "2020-08-16 15:06:29",
"desc": "【此漫画的翻译由版权方提供】拥有财富、名声、权力、这世界上的一切的男人 “海盗王”高路德·罗杰,在临死之前说了一句话,让全世界的人都涌向了大海。“想要我的财宝吗?想要的话,就去拿吧,我把世界上的一切都放在了那里!”,这个世界迎来了“大海盗时代”。",
"name": "航海王",
"source_name": "哔哩哔哩漫画",
"site": "bilibili",
"source_url": "https://manga.bilibili.com/m/detail/mc24742",
"tag": "奇幻,热血,冒险",
"ext_chapters": [
{
"ext_name": "番外篇",
"chapters": []
}
],
"comicid": "24742",
"tags": [
{
"name":"奇幻",
"tag":"style_id_998"
},
{
"name":"热血",
"tag":"style_id_999"
},
{
"name":"冒险",
"tag":"style_id_1013"
}
]
}
  • tags: 可用于标签搜索,如 http://127.0.0.1:8000/api/bilibili/list?tag=style_id_998&page=1

1.2 获取章节详情

1
GET /api/<site>/comic/<comicid>/<chapter_number>

请求示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
curl "http://127.0.0.1:8000/api/bilibili/comic/24742/1"

# 获取单行本第一卷
curl "http://127.0.0.1:8000/api/manhuagui/comic/1128/1?ext_name=单行本"
{
"chapter_number": 1,
"image_urls": [
"https://i0.hdslb.com/bfs/manga/a978a1834b3ad58fad020e56aaac9faaa0aa941a.jpg?token=73441250b03e3f16%3ANyuRMmMH4QSq3VoxAtaxG5yw%2Bd0%3D%3A1597561590",
"https://i0.hdslb.com/bfs/manga/535548cebdd5d96cfa87247f07171ccebfa1efa7.jpg?token=73441250b03e3f16%3Awk76wOeUd7daRpAfc%2FHSs1Qkql0%3D%3A1597561590",
"https://i0.hdslb.com/bfs/manga/f6e50a5bdd38af33c152f7929ee63325b519bfdc.jpg?token=73441250b03e3f16%3Ad57MJZIADxnHC%2FG9TkOIvlK1pLU%3D%3A1597561590"
],
"source_url": "https://manga.bilibili.com/m/mc24742/218087",
"title": "ROMANCE DAWN冒险的序幕",
"source_name": "哔哩哔哩漫画",
"site": "bilibili",
"comicid": "24742",
}

1.3 搜索接口

1
GET /api/<site>/search?name={name}&page={page}

请求示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
curl "http://127.0.0.1:8000/api/qq/search?name=海贼&page=1"
{
"search_result":[
{
"comicid":"505430",
"cover_image_url":"https://manhua.qpic.cn/vertical/0/17_16_48_0e28c8aabf48e91d395689b5f6a7689f.jpg/420",
"name":"航海王",
"source_url":"https://ac.qq.com/Comic/ComicInfo/id/505430",
"source_name": "腾讯漫画",
"site": "qq",
},
{
"comicid":"531616",
"cover_image_url":"https://manhua.qpic.cn/vertical/0/17_17_06_cb4ba7f7af603a3380bb1e5ed415804b.jpg/420",
"name":"航海王(番外篇)",
"source_url":"https://ac.qq.com/Comic/ComicInfo/id/531616",
"source_name": "腾讯漫画",
"site": "qq",
}
]
}

1.4 获取最近更新

1
GET /api/<site>/latest?page={page}

请求示例

1
2
3
4
5
6
7
8
9
10
11
12
13
curl "http://127.0.0.1:8000/api/qq/latest?page=1"
{
"latest":[
{
"comicid":"505430",
"cover_image_url":"https://manhua.qpic.cn/vertical/0/17_16_48_0e28c8aabf48e91d395689b5f6a7689f.jpg/420",
"name":"航海王",
"source_url":"https://ac.qq.com/Comic/ComicInfo/id/505430",
"source_name": "腾讯漫画",
"site": "qq",
}
]
}

1.5 获取所有tag

1
GET /api/<site>/tags

请求示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
curl "http://127.0.0.1:8000/api/qq/tags"
{
"tags":[
{
"category":"属性",
"tags":[
{
"name":"全部",
"tag":""
},
{
"name":"付费",
"tag":"vip_2"
},
{
"name":"免费",
"tag":"vip_1"
}
]
},
{
"category":"进度",
"tags":[
{
"name":"全部",
"tag":""
},
{
"name":"连载",
"tag":"finish_1"
},
{
"name":"完结",
"tag":"finish_2"
}
]
},
{
"category":"标签",
"tags":[
{
"name":"恋爱",
"tag":"theme_105"
},
{
"name":"玄幻",
"tag":"theme_101"
}
]
}
]
}

1.6 根据tag搜索

1
GET /api/<site>/list?tag={tag}&page={page}

请求示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 多个标签搜索不一定支持
curl "http://127.0.0.1:8000/api/qq/list?tag=theme_105,finish_2&page=1"
{
"list":[
{
"comicid":"623251",
"cover_image_url":"https://manhua.qpic.cn/vertical/0/12_20_16_eefe809e406d5076dd13012d48869f89_1499861764052.jpg/420",
"name":"出柜通告",
"site":"qq",
"source_name":"腾讯漫画",
"source_url":"https://ac.qq.com/Comic/ComicInfo/id/623251",
"status":""
},
{
"comicid":"642093",
"cover_image_url":"https://manhua.qpic.cn/vertical/0/27_15_21_78309f29cd87c7cc377394e7eff7451a_1558941691349.jpg/420",
"name":"早安,亿万萌妻",
"site":"qq",
"source_name":"腾讯漫画",
"source_url":"https://ac.qq.com/Comic/ComicInfo/id/642093",
"status":""
}
]
}

1.7 聚合搜索

1
GET /aggregate/search?name={name}&site={site}

请求示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
curl "http://127.0.0.1:8000/aggregate/search?name=海贼&site=bilibili,u17"
{
"list":[
{
"comicid":24742,
"cover_image_url":"http://i0.hdslb.com/bfs/manga-static/7bcf22ed4904a4346c7aa33887be0e6540d5908f.png",
"name":"航海王",
"site":"bilibili",
"source_name":"哔哩哔哩漫画",
"source_url":"https://manga.bilibili.com/m/detail/mc24742",
"status":"连载"
},
{
"comicid":"53210",
"cover_image_url":"https://cover.u17i.com/2016/06/3531898_1465634794_j1xJ1WwX0zh3.small.jpg",
"name":"当火影遇上海贼",
"site":"u17",
"source_name":"有妖气",
"source_url":"https://www.u17.com/comic/53210.html",
"status":""
}
]
}

1.8 根据url获取comicid

1
GET /tools/urlinfo

请求示例

1
2
3
4
5
6
curl "http://127.0.0.1:8000/tools/urlinfo?url=https://www.u17.com/comic/53210.html"
{
"comicid": "53210",
"site": "u17",
"url": "https://www.u17.com/comic/53210.html"
}

1.9 获取所有可用的站点配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GET /crawler/config
curl "http://127.0.0.1:8000/crawler/config"
{
"configs": [
{
"r18": false,
"site": "acg456",
"source_index": "http://www.acg456.com/",
"source_name": "ACG肆伍陆"
},
{
"r18": false,
"site": "bilibili",
"source_index": "https://manga.bilibili.com/",
"source_name": "哔哩哔哩漫画"
},
...
]
}

2.0 API管理相关

2.x 下的接口,只是实验功能,只能用于单点,多点部署的话不适用

2.x 下面的接口,需要登录校验,用户名和密码可以在config.py中的USERS配置,若留空则不用验证

登录: POST /user/login?next=

  • username: 用户名
  • password: 密码

登出: GET /user/logout?next=

获取用户信息: GET /user/info

2.1 添加到异步任务

1
GET /manage/task/add
  • site: 站点
  • comicid: 漫画id
  • params: json字符串
1
2
3
4
5
6
7
8
9
10
{
"chapters": "1,2,3",
"is_download_all": true,
"is_gen_pdf": true,
"is_gen_zip": true,
"is_single_image": true,
"quality": 95,
"is_send_mail": true,
"receivers": "123@qq.com,456@qq.com"
}
  • chapters: 下载的章节数 默认下载最新一集
  • is_download_all: 是否下载全部 默认否
  • is_gen_pdf: 是否生成pdf文件 默认否
  • is_gen_zip: 是否生成zip文件 默认否
  • is_single_image: 是否生成单图文件 默认否
  • quality: 生成的单图图片质量 默认95
  • is_send_mail: 是否发送邮件 默认否
  • receivers: 邮件接收者,多个以逗号隔开,不传默认发送到配置文件里的收件人

注意: 生成PDF需要安装额外依赖,pip install img2pdf 或 pip install reportlab

请求示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
curl 'http://127.0.0.1:8000/manage/task/add?site=qq&comicid=505430&params={"chapters": "1","is_download_all":false}'
{
"data": {
"comicid": "505430",
"cost_time": 0,
"create_time": "2020-11-27 21:17:18",
"id": 1,
"name": "航海王",
"params": {},
"reason": "",
"site": "qq",
"start_time": "2020-11-27 21:17:18",
"status": "运行中",
"update_time": "2020-11-27 21:17:18"
}
}

2.2 查看任务列表

1
GET /manage/task/list?page={page}

若任务超过10min,任务状态还没变成完成/失败,可能需重新添加异步任务

请求示例

1
curl "http://127.0.0.1:8000/manage/task/list?page=1"

2.3 查看站点cookies

1
GET /manage/cookies/{site}

请求示例

1
curl "http://127.0.0.1:8000/manage/cookies/qq"

2.4 更新站点cookies

1
POST /manage/cookies/{site}

请求示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
curl -XPOST "http://127.0.0.1:8000/manage/cookies/qq" \
-H "Content-Type: application/json" -d \
'{
"cookies": [
{
"domain": ".ac.qq.com",
"name": "xxx",
"path": "/",
"secure": false,
"value": "1604080000"
}
],
"cover": false
}'
  • cover: 可选参数,是否覆盖,默认不覆盖

2.5 查看站点代理配置

1
GET /manage/proxy/{site}

请求示例

1
curl "http://127.0.0.1:8000/manage/proxy/qq"

2.6 设置站点代理

1
GET /manage/proxy/{site}?proxy={proxy}

请求示例

1
curl "http://127.0.0.1:8000/manage/proxy/wnacg?proxy=socks5://127.0.0.1:1080"

站点收录情况

漫画站点

站点 site 站点主页 最近更新 关键词搜索 标签搜索
拷贝漫画 copymanga https://copymanga.com/
二次元动漫 2animx https://www.2animx.com/
古风漫画网 gufengmh8 https://www.gufengmh8.com/ -
36漫画网 36mh https://www.36mh.net/ -
土豪漫画网 tuhao456 https://www.tuhao456.com/
漫画DB manhuadb https://www.manhuadb.com/
DM5 dm5 https://www.dm5.com/
bilibili漫画 bilibili https://manga.bilibili.com/
腾讯漫画 qq https://ac.qq.com/
有妖气漫画 u17 https://www.u17.com/
动漫之家 dmzj https://www.dmzj.com/
快看漫画 kuaikan https://www.kuaikanmanhua.com/
漫画柜 manhuagui https://www.manhuagui.com/
漫画柜 mhgui https://www.mhgui.com/
漫画1234 mh1234 https://www.mh1234.com/
新新漫画 77mh https://www.77mh.cc/
漫画台 manhuatai https://www.manhuatai.com/ - -
ACG肆伍陆 acg456 http://www.acg456.com/ -
COCO漫画 cocomanhua https://www.cocomanhua.com/
WEBTOON webtoons https://www.webtoons.com/ - -
qootoon qootoon https://www.qootoon.net/ - -
扑飞漫画 pufei8 http://www.pufei8.com/ - -
歪漫屋 yymh889 http://yymh889.com/ -
爱飞漫画 2feimh https://www.2feimh.com/ - - -
优酷漫画 ykmh https://www.ykmh.com/ -
来漫画 laimanhua https://www.laimanhua.com/
漫画160 mh160 https://www.mh160.xyz/
奇漫屋 qiman6 http://www.qiman6.com/
奇妙漫画 qimiaomh https://www.qimiaomh.com/
6漫画 sixmh6 http://www.sixmh6.com/
波动boodo boodo https://boodo.qq.com/
3250漫画 3250mh https://www.3250mh.com/
漫番漫画 myfcomic http://www.myfcomic.com/

R18

站点 site 站点主页 最近更新 关键词搜索 标签搜索
18H漫画区 18hmmcg http://18h.mm-cg.com/
177漫畫 177pic http://177pic.info/
绅士漫画 wnacg http://www.wnacg.org/
禁漫天堂 18comic https://18comic.org/
NHentai nhentai https://nhentai.net/
禁漫之家 jmzj http://jmzj.xyz/
污污漫画 55comic https://www.55comic.com/

图集

站点 site 站点主页 最近更新 关键词搜索 标签搜索
秀人网 xiuren http://www.xiuren.org/ -
MMKK mmkk https://www.mmkk.me/ -

其它站点(未收录)

站点 说明 站点主页
e-hentai 配合 Ehviewer 食用 https://e-hentai.org/
exhenta 配合 Ehviewer 食用 https://exhentai.org/
Nsfwpicx NSFW图集(看看就好,别爬了) http://picxxxxx.top/
Toomics 之前适配过,现在不能用了 https://toomics.com/