Comic-DL
Comic-dl 是一个命令行工具,可以轻松地从各种漫画和漫画网站下载漫画。你也可以用这个工具搜索漫画。灵感来自 youtube-dl。
如果你正在寻找一个应用程序或者这个工具的用户界面,请转到:CoManga
请不要过度使用这个脚本。通过在这些网站上禁用广告拦截器来支持网站开发者。 广告收入用于支付网站服务器费用。
目录
支持的网站
你可以在这里
查看支持的网站列表。
依赖项安装
这个脚本可以在多个操作系统上运行。你需要在系统路径中安装 Node.js
才能使这个脚本工作(在每个操作系统上都需要,即使是在 WINDOWS 上 :/)。从 Node.js 官方网站 下载 Node.Js
。不管你使用哪种操作系统,这都是必须的。请按照下面的说明进行操作,根据你的操作系统选择相应的步骤。
Linux/Debian:
由于大多数(如果不是全部)Linux/Debian 操作系统都预装了 Python,你不需要手动安装 Python。不过,请确保你使用的是 Python >= 2.7.x 版本。
我们需要 pip
来安装任何外部依赖项。所以,打开任何终端并输入 pip list
,如果它显示一些数据,那就没问题。但是,如果它显示错误,比如 pip not found
或类似的内容,那么你需要安装 pip
。只需在终端中输入以下命令:
sudo apt-get install python-pip
如果你使用Fedora、CentOS/RHEL、openSUSE或Arch Linux,只需按照本教程
安装pip
即可。
如果仍然不行,你需要手动安装pip。这是一次性的简单操作,可以按照本教程
进行安装。
Windows:
如果你使用Windows,建议下载此脚本的Windows可执行文件
。使用Windows可执行文件时,除了Node.js外无需安装其他任何东西。但如果由于某些原因你想使用Python脚本,请按以下步骤操作:
- 安装Python 2.7.6以上版本。从这里下载所需的安装程序。
- 将其添加到系统路径(如果尚未添加)。
- 如果你使用Python 2.7.9以上版本,无需安装
PIP
。但如果你没有安装pip并将其添加到Windows路径中,请按照这个简短教程进行操作。 - 下载这个
文本
文件并将其放在某个目录/文件夹中。 - 打开命令提示符,浏览到你下载requirements.txt文件的目录,运行以下命令:
pip install -r requirements.txt
- 这应该会安装所需的外部库。
现在,同时安装Node.js并确保它在你的路径中。
如果一切顺利没有任何错误,那么你就可以开始使用了!
Mac OS X:
Mac OS X用户需要获取自己的Python
和Pip
版本。
- Python安装指南:http://docs.python-guide.org/en/latest/starting/install/osx/
- Pip安装指南:http://stackoverflow.com/questions/17271319/installing-pip-on-mac-os-x
下载并安装这些后,你需要将PIP和Python添加到你的路径中。按照这个简短指南
成功安装Python和pip。
安装
在你的操作系统中安装和设置好所有依赖项后,你就可以使用这个脚本了。
所有操作系统的说明都是相同的。下载这个仓库
并将其放在系统的某个位置。进入comic_dl
文件夹。
Windows用户最好不要将其放在需要管理员权限的位置,比如C:\Windows
。这适用于Python脚本和Windows可执行文件(.exe)。
Linux/Debian用户确保此脚本是可执行的。如果遇到问题,只需运行以下命令:
chmod +x cli.py
然后,使用以下命令执行:
./cli.py
Docker
使用Docker,你可以将所有依赖项封装在一个容器中,并从你的系统使用comic_dl
。
你需要一个正在运行的Docker客户端,请参阅Docker文档。
在你的系统上定义一个方便的别名,使用一些Docker技巧。这将本地目录挂载到容器内的/directory
下。这适用于*NIX系统,也适用于Windows Linux子系统。
你可以使用下载目录中所需用户的值更改PGID和PUID的值。
alias comic_dl="docker run -it --rm -e PGID=$(id -g) -e PUID=$(id -u) -v $(pwd):/directory:rw -w /directory ghcr.io/xonshiz/comic-dl:latest comic_dl -dd /directory"
在你的系统上运行它。这实际上会根据需求启动一个容器,并在完成后停止并删除它。
用法: comicdl [-h] [--version] [-s SORTING] [-a] [-c]
[-dd DOWNLOAD_DIRECTORY] [-rn RANGE] [--convert CONVERT]
[--keep KEEP] [--quality QUALITY] [-i INPUT] [--comic]
[-comic-search SEARCH_COMIC] [-comic-info COMIC_INFO]
[--update UPDATE] [--print-index]
[-ml MANGA_LANGUAGE] [-sc SKIP_CACHE]
[-p PASSWORD] [-u USERNAME] [-v]
[...]
Python支持
此脚本支持Python 3。只要你安装了所有依赖项,也可以在Python 2上运行。
Windows可执行文件
建议Windows用户使用此可执行文件,以节省安装所有依赖项的时间和精力。
你需要下载并安装Node.js,并确保它在你的Windows路径中(安装时注意勾选相关选项)。
如果你已经安装了Node.js,那么你可以下载这个可执行文件并立即开始使用脚本:
可执行文件(x86)
:点击这里 注意: 这是一个命令行工具,双击它是无法运行的。请下载这个.exe文件并将其放在某个文件夹中(不要放在Windows或其他受限制的文件夹中),然后按住Shift键并在屏幕上右键单击,选择"在此处打开命令窗口"。这将为您打开一个CMD窗口。现在,您需要执行它并向其传递参数,例如:
comic_dl.exe -i "https://readcomicsonline.ru/comic/irredeemable-omnibus-2012"
在参数列表部分阅读每个参数的功能。
参数列表
目前,该脚本支持以下参数:
-h, --help 打印脚本的基本帮助菜单并退出。
-i,--input 定义漫画/漫画的输入链接。
--print-index 打印输入URL中链接的范围索引
-V,--version 打印版本并退出。
-u,--username 指定网站的用户名。
-p,--password 指定网站的密码。
-v,--verbose 启用详细日志记录。
--sorting 排序下载顺序。(值 = asc, ascending,old,new,desc,descending,latest,new)
-a, --auto 自动下载新章节(需要配置文件!)
-c, --config 为自动下载功能生成配置文件
-dd,--download-directory 指定漫画/漫画的自定义下载位置。
-rn,--range 选择要下载的章节范围(默认 = 全部) [ 例: --range 1-10 (这将下载系列的前10集)]
--convert 告诉脚本将下载的图像转换为PDF或其他格式。(支持的值: pdf, cbz) (默认: 否) [默认情况下,脚本不会进行任何转换。]
--keep 告诉脚本是否在转换后保留文件。(支持: No, False) (默认: Yes/True) [默认情况下,即使在转换后也会保留图像。]
--quality 告诉脚本您想下载的图像质量。(支持的值: low/bad/worst/mobile/cancer) [默认情况下,将以可用的最高质量下载图像。无需提供任何选项。]
-ml, --manga-language 选择漫画的语言。0是英语(默认),1是意大利语。
-sc, --skip-cache 强制跳过缓存检查。
--comic 如果您输入的是漫画ID或精确的漫画名称,请在-i后添加此项。
[ 例: -i "Deadpool Classic" --comic ]
-comic-search, --search-comic 通过从ReadComicOnline.li抓取的数据搜索漫画
[ 例: -comic-search "Deadpool" ]
-comic-info, --comic-info 列出给定漫画的所有信息(参数可以是漫画ID或精确的漫画名称)。
[ 例: -comic-info "Deadpool Classic" ] 或 [ 例: -comic-info 3865 ]
--update 更新给定参数的漫画数据库。
[ 例: --update "Deadpool Classic" ] 或 [ 例: --update "https://readcomiconline.li/Comic/Deadpool-Classic" ]
-cookie, --cookie 传递一个在整个会话中使用的cookie。
语言代码:
这些代码对应于语言。因此,只需传入这些语言代码,即可下载该语言的漫画/漫画(仅少数网站支持)。
语言代码 --> 语言
0 --> 英语
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 --> 其他
注意:
- 一些网站如bato.to在您未登录的情况下不允许您查看某些页面。您需要创建一个账户,并通过-p和-u参数将登录信息传递给脚本。
- 对于omgbeaupeep,您只需在范围部分传递绝对章节编号即可。例如:查看Richie Rich。如果您想下载前600集,您可以传递:--range 001-600。只需检查这些章节的URL并相应地传递即可。
使用方法
使用此脚本,您必须传递参数才能下载任何内容。在脚本中传递参数非常简单。由于该脚本相当基础,它没有太多的参数。查看参数部分
以了解更多关于该脚本提供的参数。
请按照您的操作系统的说明进行操作:
Windows
将此脚本保存在某个目录/文件夹后,您需要打开命令提示符
,浏览到该目录,然后执行脚本。让我们一步步来:
- 打开您下载此存储库文件的文件夹。
- 按住**
SHIFT
键,同时按住SHIFT键,右键单击
**并从出现的选项中选择在此处打开命令提示符
。 - 现在,在命令提示符中,输入以下内容: 如果你使用的是Windows可执行文件:
comic_dl.exe -i <漫画的URL>
如果你使用的是Python脚本:
__main__.py -i <漫画的URL>
URL可以是任何支持的网站的URL。
Linux/Debian
将此脚本保存在某个目录/文件夹后,你需要打开"命令提示符"并浏览到该目录,然后执行脚本。让我们一步步来:
- 打开终端,
Ctrl + Alt + T
是打开终端的快捷键(如果你不知道的话)。 - 现在,将终端的当前工作目录更改为你下载此存储库的目录。
- 然后在终端中输入:
__main__.py -i <漫画的URL>
URL可以是任何支持的网站的URL。
自动下载
你可以通过创建一个JSON格式的配置文件来自动下载你喜欢的漫画的新章节。
要生成配置文件,请运行以下命令并按照说明操作
python __main__.py --config
或者使用可执行文件
comic_dl.exe --config
这些命令支持创建配置文件、添加和删除系列以及编辑常用下载配置。
一旦生成了配置文件,你就可以通过运行以下命令自动下载所选漫画的可用新章节。该命令会自动将配置文件更新到最新下载的章节,因此在下一次运行时只会下载新的章节。
python __main__.py --auto
或者使用可执行文件
comic_dl.exe --auto
注意:不需要保留漫画文件就可以下载下一章节。
功能
这是一个非常基本和小巧的脚本,所以目前只有几个功能。
- 下载单个章节并放入以漫画名称、卷数和章节命名的目录中。
- 下载系列的所有可用章节。
- 如果文件已经下载过则跳过。
- 在大多数地方显示人类可读的错误。
更新日志
你可以在这里
查看更新日志。
提出问题/请求新网站
如果你打算为脚本提出问题或请求新功能或任何需要提出问题的事情,请记住以下几点。
报告问题
如果你要报告问题,请再次运行脚本并加上"-v或--verbose"参数。它应该会在同一目录下生成一个名为"Error Log.log"的文件。复制该日志文件的数据并将其发布在Gist上,然后在此处报告问题时分享该gist的链接。确保你编辑掉你的用户名和密码,如果在命令中提供了的话。
如果你不包含详细日志,可能需要一些时间来解决你遇到的问题。请遵循以下语法:
你给出的命令 : 你用什么命令调用脚本的?
预期行为 : 在给出上述命令后,你期望会发生什么?
实际行为 : 实际上发生了什么?
Gist链接 : 如前所述,将错误日志发布在gist上并在此处分享链接。
注意:仅附加截图并不能告诉我或其他人幕后发生了什么。因此,错误日志是必需的。
建议新功能
如果你是来提出建议的,请遵循以下基本语法来发布请求:
主题 : 简要告诉我们关于该功能的信息。
详细说明 : 详细描述你想要什么以及如何实现。
这应该足够了,但如果你能添加更多内容那就更好了 ;)
注意事项
-
Readcomiconline.li一直很难处理,可能会经常将你屏蔽。现在你可以使用
--cookie
参数传递一个有效的cookie。你可以通过检查网络选项卡中请求头的Cookie
值或使用外部浏览器插件来获取cookie。在#299上阅读更多相关信息。 -
comic.naver.com有韩文字符,某些操作系统无法处理这些字符。因此,脚本不会用韩文的系列名称来命名文件夹,而是会下载并用漫画的ID来命名文件夹。
-
Bato.to需要你"登录"才能阅读某些章节。因此,为了安全起见,通过"-p"和"-u"参数向脚本提供用户名/密码组合。
-
Bato.to还有各种语言的漫画。你需要通过"-ml"参数传递语言代码。阅读语言代码部分以了解语言代码。
-
Bato.to仅在"批量"模式下支持自定义语言下载。
-
包含特殊字符的URL处理起来很棘手,因为涉及"字符编码"。如果你想下载这样的漫画/漫画,你需要使用Python 3(如果使用python),并且还需要将终端的字符编码设置为"utf-8"或"latin-1"。#95是同样的问题。
捐赠
Patreon链接:https://www.patreon.com/xonshiz
感谢任何金额的支持 :)