hect0x7 / JMComic-Crawler-Python

Python API for JMComic | 提供Python API访问禁漫天堂,同时支持网页端和移动端 | 禁漫天堂GitHub Actions下载器🚀
https://jmcomic.readthedocs.io/zh-cn/latest/option_file_syntax/#
MIT License
881 stars 2.08k forks source link

【问题反馈】使用GitHub Actions下载禁漫本子(新) #91

Open hect0x7 opened 1 year ago

hect0x7 commented 1 year ago

✨提Issue注意✨

✨最新功能提醒✨

之前需要编辑文件提交才能触发Github Actions,现在不需要啦!

hect0x7 commented 1 year ago

Github Actions过往问题反馈: https://github.com/hect0x7/JMComic-Crawler-Python/issues/2

jkdfzx commented 1 year ago

image image 请问下载路径rule这样写哪边问题? 试了下,好像没有依照路径存放

hect0x7 commented 1 year ago

image image 请问下载路径rule这样写哪边问题? 试了下,好像没有依照路径存放

我试了下,好像没问题呀?你确定你下载时候用的option是你自定义的option吗? 我看你的输出,好像用的是默认option的Bd_Ptitle. image

image

jkdfzx commented 1 year ago

哦,抱歉,是我搞错了,谢谢

aaaxukun commented 1 year ago

最近用github好像下不了了

hect0x7 commented 1 year ago

最近用github好像下不了了

现在可以了,重新fork一下

aaaxukun commented 1 year ago

谢谢

aaaxukun commented 1 year ago

最近好像用不了了

buiawpkgew1 commented 1 year ago

最近好像用不了了

好像是这个问题https://github.com/tonquer/JMComic-qt/issues/77

hect0x7 commented 1 year ago

最近好像用不了了

可以用,但你需要重新fork一下我的仓库,你的仓库有点老了,因为option不兼容没法用,重新fork一下就好啦

jzl543098871 commented 11 months ago

尝试了一下实例中的“搜索并下载本子” 然后把option的rule修改为'Bd_Aauthor_Atitle'

结果非常奇怪,我用的tag是作者tag'宮元一佐"

123

在输出根目录下给我分出了足足11个子文件夹出来, 我看禁漫网址上作者都是对的“/album/482594/宮元一佐-はーとまーくもっと多め”举个例子,基本都是宮元一佐-(后面是标题或者所属杂志),这是怎么回事呢

jzl543098871 commented 11 months ago

感觉自定义成Bd_tag__Atitle应该比较能达到我想要的效果?我看了下

jzl543098871 commented 11 months ago

另外我看了下 client里面关于搜索的部分,教程中是使用的main_tag=3的tag搜索,我试着改成了站内搜索,因为使用tag搜索的话,很多时候结果会存在漏的,虽然给出的html链接已经变成了【html】https://18comic.vip/search/photos?main_tag=0&search_query=宮元一佐&page=1&o=mr&t=a,但是结果还是和之前使用tag搜索一样,只有20来个结果 我自己乱改的示例:

from jmcomic import *

option = create_option('option.yml')
client = option.new_jm_client()

site = '宮元一佐'
# 站内搜索main_tag=0。
# 搜索第一页。
page: JmSearchPage = client.search_site(site, page=1)

aid_list = []

for aid, atitle, site_list in page.iter_id_title_tag():  # 使用page的iter_id_title_tag迭代器
    if site in site_list:
        print(f'[标签/{site}] 发现目标: [{aid}]: [{atitle}]')
        aid_list.append(aid)

#download_album(aid_list, option)

程序输出结果是这样的:

python.exe C:\Users\子夜\PycharmProjects\JM\searh.py 
2023-12-03 03:17:10:【plugin.invoke】调用插件: [login]
2023-12-03 03:17:10:【html】https://18comic.vip/login
2023-12-03 03:17:11:【plugin.login】登录成功
2023-12-03 03:17:11:【html】https://18comic.vip/search/photos?main_tag=0&search_query=宮元一佐&page=1&o=mr&t=a
[标签/宮元一佐] 发现目标: [123246]: [(C96)[NOSEBLEED (宮元一佐)] はーとまーく多め。2 [DL版]]
[标签/宮元一佐] 发现目标: [122014]: [Heart Mark Oome. 2]
[标签/宮元一佐] 发现目标: [99700]: [[宮元一佐][ある貴族の幸せ(ガールズフォーム Vol.18)]]
[标签/宮元一佐] 发现目标: [99608]: [(C95) [NOSEBLEED (宮元一佐)] はーとまーく多め。 [兔司姬漢化組]]
[标签/宮元一佐] 发现目标: [99541]: [Heart Mark Oome.]
[标签/宮元一佐] 发现目标: [99542]: [Aru Kijoku No Shiawase]
[标签/宮元一佐] 发现目标: [89346]: [(C92) [NOSEBLEED (宮元一佐)] りりむすきっす [中國翻訳]-(C92) [NOSEBLEED (Miyamoto Issa)] LiLiM's kiss [Chinese] [CE家族社]]
[标签/宮元一佐] 发现目标: [89136]: [[CE家族社](C86) [NOSEBLEED (宮元一佐)] そにコン 2 (すーぱーそに子)]
[标签/宮元一佐] 发现目标: [89135]: [[CE家族社](C92) [NOSEBLEED (宮元一佐)] りりむすきっす]
[标签/宮元一佐] 发现目标: [78981]: [[小付個人漢化][宮元一佐]ラブストーリー LOVE STORY(ガールズフォーム Vol.16)]
[标签/宮元一佐] 发现目标: [64658]: [(C85) (同人誌) [NOSEBLEED (宮元一佐)] そにコン (すーぱーそに子)]
[标签/宮元一佐] 发现目标: [64349]: [[CE家族社](C85) [NOSEBLEED (宮元一佐)] そにコン (すーぱーそに子)]
[标签/宮元一佐] 发现目标: [45871]: [[宮元一佐][姉弟はなかよし(ガールズフォーム Vol.09)]]
[标签/宮元一佐] 发现目标: [37778]: [[NOSEBLEED (宮元一佐)] アイコン (アイドルマスター シンデレラガールズ)]
[标签/宮元一佐] 发现目标: [37619]: [[宮元一佐][しーくれっと しすたー(ガールズフォーム Vol.08)]]
[标签/宮元一佐] 发现目标: [37337]: [[宮元一佐] 日陰の園へようこそ (ガルズフォム Vol.12)]
[标签/宮元一佐] 发现目标: [30295]: [[宮元一佐][Cover illust αddition(ガールズフォームVol.05)]]
[标签/宮元一佐] 发现目标: [29232]: [[宮元一佐] 快落の夢 (Girls forM Vol.13)]
[标签/宮元一佐] 发现目标: [28817]: [[宮元一佐] ●REC しーくれっとしすたー (ガールズフォームVol.08) [喪屍漢化]]
[标签/宮元一佐] 发现目标: [26925]: [[宮元一佐][いいなりのすゝめ(ガールズフォーム Vol.14)]]
[标签/宮元一佐] 发现目标: [18888]: [[丧尸汉化] [宮元一佐] いいなりのすゝめ (ガールズフォーム Vol.14)]
[标签/宮元一佐] 发现目标: [11509]: [[宮元一佐][日陰の園へようこそ(Girls forM Vol.12)]]
[标签/宮元一佐] 发现目标: [9771]: [[宮元一佐][ラブストーリー LOVE STORY(ガールズフォーム Vol.16)]]
[标签/宮元一佐] 发现目标: [9611]: [[宮元一佐][快落の夢(Girls forM Vol.13)]]
[标签/宮元一佐] 发现目标: [4722]: [[宮元一佐][快落の夢(ガールズフォーム Vol.13)]]

Process finished with exit code 0

我注释掉了下载部分,因为就像看看搜索结果到底是啥,我觉得应该是‘page.iter_id_title_tag’这个需要修改,但是不知道怎么改,写的是在page里,我找了找没找到。。。。 假如我想使用站内搜索+包含或排除或并集搜索的话,示例代码该怎么修改呢,示例里面是单关键字的搜索,多关键字包含或排除或并集该怎么写我自己摸索了下不对。。。

hect0x7 commented 11 months ago

/album/482594/宮元一佐-はーとまーくもっと多め

这个问题有两个原因:

  1. 禁漫本子的作者不准确
  2. 你用的是search_tag而不是search_author

第一个问题显而易见,看看禁漫的网页就知道了 image image image

这些本都是search_tag搜出来的,但是《作者:》标签都不是【宮元一佐】。能搜出来是因为《標籤:》有【宮元一佐】。 但是下载的时候,Aauthor就是取《作者:》标签的值,于是就出问题了。

第二个问题,如果你用search_author,可以保证《作者:》标签是【宮元一佐】,但是可能会漏一些本子

hect0x7 commented 11 months ago

另外我看了下 client里面关于搜索的部分,教程中是使用的main_tag=3的tag搜索,我试着改成了站内搜索,因为使用tag搜索的话,很多时候结果会存在漏的,虽然给出的html链接已经变成了【html】https://18comic.vip/search/photos?main_tag=0&search_query=宮元一佐&page=1&o=mr&t=a,但是结果还是和之前使用tag搜索一样,只有20来个结果 我自己乱改的示例:

from jmcomic import *

option = create_option('option.yml')
client = option.new_jm_client()

site = '宮元一佐'
# 站内搜索main_tag=0。
# 搜索第一页。
page: JmSearchPage = client.search_site(site, page=1)

aid_list = []

for aid, atitle, site_list in page.iter_id_title_tag():  # 使用page的iter_id_title_tag迭代器
    if site in site_list:
        print(f'[标签/{site}] 发现目标: [{aid}]: [{atitle}]')
        aid_list.append(aid)

#download_album(aid_list, option)

程序输出结果是这样的:

python.exe C:\Users\子夜\PycharmProjects\JM\searh.py 
2023-12-03 03:17:10:【plugin.invoke】调用插件: [login]
2023-12-03 03:17:10:【html】https://18comic.vip/login
2023-12-03 03:17:11:【plugin.login】登录成功
2023-12-03 03:17:11:【html】https://18comic.vip/search/photos?main_tag=0&search_query=宮元一佐&page=1&o=mr&t=a
[标签/宮元一佐] 发现目标: [123246]: [(C96)[NOSEBLEED (宮元一佐)] はーとまーく多め。2 [DL版]]
[标签/宮元一佐] 发现目标: [122014]: [Heart Mark Oome. 2]
[标签/宮元一佐] 发现目标: [99700]: [[宮元一佐][ある貴族の幸せ(ガールズフォーム Vol.18)]]
[标签/宮元一佐] 发现目标: [99608]: [(C95) [NOSEBLEED (宮元一佐)] はーとまーく多め。 [兔司姬漢化組]]
[标签/宮元一佐] 发现目标: [99541]: [Heart Mark Oome.]
[标签/宮元一佐] 发现目标: [99542]: [Aru Kijoku No Shiawase]
[标签/宮元一佐] 发现目标: [89346]: [(C92) [NOSEBLEED (宮元一佐)] りりむすきっす [中國翻訳]-(C92) [NOSEBLEED (Miyamoto Issa)] LiLiM's kiss [Chinese] [CE家族社]]
[标签/宮元一佐] 发现目标: [89136]: [[CE家族社](C86) [NOSEBLEED (宮元一佐)] そにコン 2 (すーぱーそに子)]
[标签/宮元一佐] 发现目标: [89135]: [[CE家族社](C92) [NOSEBLEED (宮元一佐)] りりむすきっす]
[标签/宮元一佐] 发现目标: [78981]: [[小付個人漢化][宮元一佐]ラブストーリー LOVE STORY(ガールズフォーム Vol.16)]
[标签/宮元一佐] 发现目标: [64658]: [(C85) (同人誌) [NOSEBLEED (宮元一佐)] そにコン (すーぱーそに子)]
[标签/宮元一佐] 发现目标: [64349]: [[CE家族社](C85) [NOSEBLEED (宮元一佐)] そにコン (すーぱーそに子)]
[标签/宮元一佐] 发现目标: [45871]: [[宮元一佐][姉弟はなかよし(ガールズフォーム Vol.09)]]
[标签/宮元一佐] 发现目标: [37778]: [[NOSEBLEED (宮元一佐)] アイコン (アイドルマスター シンデレラガールズ)]
[标签/宮元一佐] 发现目标: [37619]: [[宮元一佐][しーくれっと しすたー(ガールズフォーム Vol.08)]]
[标签/宮元一佐] 发现目标: [37337]: [[宮元一佐] 日陰の園へようこそ (ガルズフォム Vol.12)]
[标签/宮元一佐] 发现目标: [30295]: [[宮元一佐][Cover illust αddition(ガールズフォームVol.05)]]
[标签/宮元一佐] 发现目标: [29232]: [[宮元一佐] 快落の夢 (Girls forM Vol.13)]
[标签/宮元一佐] 发现目标: [28817]: [[宮元一佐] ●REC しーくれっとしすたー (ガールズフォームVol.08) [喪屍漢化]]
[标签/宮元一佐] 发现目标: [26925]: [[宮元一佐][いいなりのすゝめ(ガールズフォーム Vol.14)]]
[标签/宮元一佐] 发现目标: [18888]: [[丧尸汉化] [宮元一佐] いいなりのすゝめ (ガールズフォーム Vol.14)]
[标签/宮元一佐] 发现目标: [11509]: [[宮元一佐][日陰の園へようこそ(Girls forM Vol.12)]]
[标签/宮元一佐] 发现目标: [9771]: [[宮元一佐][ラブストーリー LOVE STORY(ガールズフォーム Vol.16)]]
[标签/宮元一佐] 发现目标: [9611]: [[宮元一佐][快落の夢(Girls forM Vol.13)]]
[标签/宮元一佐] 发现目标: [4722]: [[宮元一佐][快落の夢(ガールズフォーム Vol.13)]]

Process finished with exit code 0

我注释掉了下载部分,因为就像看看搜索结果到底是啥,我觉得应该是‘page.iter_id_title_tag’这个需要修改,但是不知道怎么改,写的是在page里,我找了找没找到。。。。 假如我想使用站内搜索+包含或排除或并集搜索的话,示例代码该怎么修改呢,示例里面是单关键字的搜索,多关键字包含或排除或并集该怎么写我自己摸索了下不对。。。

多关键字搜索和禁漫网站是一样的 image

例如:

page: JmSearchPage = self.client.search_tag('+无修正 +中文 -全彩')
hect0x7 commented 11 months ago

另外我看了下 client里面关于搜索的部分,教程中是使用的main_tag=3的tag搜索,我试着改成了站内搜索,因为使用tag搜索的话,很多时候结果会存在漏的,虽然给出的html链接已经变成了【html】

其实你把if语句去掉就行了,我看了下站内搜索的搜索页,应该能保证都是【宮元一佐】这个作者的本子。 下面你的需求就变成了:怎么保证下载本子时,强制作者=【宮元一佐】

下面给出一个应该能解决你问题的代码示例:

from jmcomic import *

option = create_option('option.yml')
client = option.new_jm_client()

author = '宮元一佐'

def search():
    # 站内搜索main_tag=0。
    # 搜索第一页。
    page: JmSearchPage = client.search_site(author, page=1)
    # 直接返回这一页的所有本子id
    return list(page.iter_id())

def download(id_list):
    # 自定义author字段的解析:一律使用'宮元一佐'
    JmModuleConfig.AFIELD_ADVICE['author'] = lambda album: author
    download_album(id_list, option)

download(search())

效果: image

hect0x7 commented 11 months ago

尝试了一下实例中的“搜索并下载本子” 然后把option的rule修改为'Bd_Aauthor_Atitle'

结果非常奇怪,我用的tag是作者tag'宮元一佐"

123

在输出根目录下给我分出了足足11个子文件夹出来, 我看禁漫网址上作者都是对的“/album/482594/宮元一佐-はーとまーくもっと多め”举个例子,基本都是宮元一佐-(后面是标题或者所属杂志),这是怎么回事呢

最后,提醒一下,你的问题不应该放在这个issue,而应该新开一个issue,这样方便讨论,能让别人参考到你的问题 image

jzl543098871 commented 11 months ago

感谢作者,第一次用issue功能,不知道该不该单独开贴回复就在贴内回了,以后会注意的。 关于结尾还有想讨论的,就单独开了个issue希望大佬有空看一下。

laihen123 commented 3 months ago

微信图片_20240807180231 这时什么原因?

hect0x7 commented 3 months ago

微信图片_20240807180231 这时什么原因?

你怎么把代码改成这样?重新fork吧

laihen123 commented 3 months ago

我没有改代码呀

laihen123 commented 3 months ago

微信截图_20240808110816 大佬..为什么每个编码下载下来都是这个大小没有文件呢

hect0x7 commented 3 months ago

微信截图_20240808110816 大佬..为什么每个编码下载下来都是这个大小没有文件呢

说明一下你的触发方式,以及贴一下actions链接

laihen123 commented 3 months ago

微信截图_20240808110816大佬..为什么每个编码下载下来都是这个大小没有文件呢

说明一下你的触发方式,以及贴一下行动链接

https://github . com/laihen 123/JM comic-Crawler-Python/actions/workflows/download _ dispatch . yml 就是如图片这样直接填写了漫画编号 昨天还能正常下载 今天下载就变成这样了 微信截图_20240808123705

laihen123 commented 3 months ago

微信截图_20240808110816 大佬..为什么每个编码下载下来都是这个大小没有文件呢

说明一下你的触发方式,以及贴一下actions链接

提示了这个错误 应该怎么办 <class 'jmcomic.jm_exception.ResponseUnexpectedException'> 请求失败,响应状态码为403,原因为: [ip地区禁止访问/爬虫被识别], URL=[https://18comic.vip/album/552885] resp: <Response [403]>

laihen123 commented 3 months ago

微信截图_20240808110816 大佬..为什么每个编码下载下来都是这个大小没有文件呢

说明一下你的触发方式,以及贴一下actions链接

使用了梯子 也是这样的情况

laihen123 commented 3 months ago

微信截图_20240808110816 大佬..为什么每个编码下载下来都是这个大小没有文件呢

说明一下你的触发方式,以及贴一下actions链接

在网页上直接访问这个https://18comic.vip/album/552885 链接是可以正常访问的

hect0x7 commented 3 months ago

微信截图_20240808110816 大佬..为什么每个编码下载下来都是这个大小没有文件呢

说明一下你的触发方式,以及贴一下actions链接

在网页上直接访问这个https://18comic.vip/album/552885 链接是可以正常访问的

你这里是两个问题吧,一个是github actions的一个是你本地运行的。 github actions暂时用不了,晚点我解决一下。

laihen123 commented 3 months ago

微信截图_20240808110816 大佬..为什么每个编码下载下来都是这个大小没有文件呢

说明一下你的触发方式,以及贴一下actions链接

在网页上直接访问这个https://18comic.vip/album/552885 链接是可以正常访问的

你这里是两个问题吧,一个是github actions的一个是你本地运行的。 github actions暂时用不了,晚点我解决一下。

没用本地运行 都用的github actions 本地项目我不会部署

laihen123 commented 3 months ago

微信截图_20240808110816 大佬..为什么每个编码下载下来都是这个大小没有文件呢

说明一下你的触发方式,以及贴一下actions链接

在网页上直接访问这个https://18comic.vip/album/552885 链接是可以正常访问的

你这里是两个问题吧,一个是github actions的一个是你本地运行的。 github actions暂时用不了,晚点我解决一下。

没用本地运行 都用的github actions 本地项目我不会部署

大佬 本地部署可以出一个稍微详细一点的教程吗? 零基础不太会弄

hect0x7 commented 3 months ago

微信截图_20240808110816 大佬..为什么每个编码下载下来都是这个大小没有文件呢

说明一下你的触发方式,以及贴一下actions链接

在网页上直接访问这个https://18comic.vip/album/552885 链接是可以正常访问的

你这里是两个问题吧,一个是github actions的一个是你本地运行的。 github actions暂时用不了,晚点我解决一下。

没用本地运行 都用的github actions 本地项目我不会部署

大佬 本地部署可以出一个稍微详细一点的教程吗? 零基础不太会弄

本地部署就是写python代码,你得先装python,再按本项目的readme的快速上手来。如果你不会python,建议还是等github actions吧,我修完再回复你。

laihen123 commented 3 months ago

微信截图_20240808110816 大佬..为什么每个编码下载下来都是这个大小没有文件呢

说明一下你的触发方式,以及贴一下actions链接

在网页上直接访问这个https://18comic.vip/album/552885 链接是可以正常访问的

你这里是两个问题吧,一个是github actions的一个是你本地运行的。 github actions暂时用不了,晚点我解决一下。

没用本地运行 都用的github actions 本地项目我不会部署

大佬 本地部署可以出一个稍微详细一点的教程吗? 零基础不太会弄

本地部署就是写python代码,你得先装python,再按本项目的readme的快速上手来。如果你不会python,建议还是等github actions吧,我修完再回复你

请教一下是这样吗? 微信截图_20240808183226 我这样运行了 能下载一点点图片 运行10秒钟左右就没有响应了 只能强行结束程序 是什么原因呢?

hect0x7 commented 3 months ago

可能是网络原因卡住了

laihen123 commented 3 months ago

可能是网络原因卡住了

那就没办法了 国内国外的网络我都试过了 运行起来都是一样的情况...算了 我还等大佬修复github actions吧 谢谢大佬解惑了

hect0x7 commented 3 months ago

可能是网络原因卡住了

那就没办法了 国内国外的网络我都试过了 运行起来都是一样的情况...算了 我还等大佬修复github actions吧 谢谢大佬解惑了

国外的网络是指代理吗,你要把代理设置为系统代理后,再运行代码才会有效。

laihen123 commented 3 months ago

可能是网络原因卡住了

那就没办法了 国内国外的网络我都试过了 运行起来都是一样的情况...算了 我还等大佬修复github actions吧 谢谢大佬解惑了

国外的网络是指代理吗,你要把代理设置为系统代理后,再运行代码才会有效。

我用的V2ray 我运行代理的时候是选择的全局代理 应该跟你指的系统代理是一样的意思吧

hect0x7 commented 3 months ago

可能是网络原因卡住了

那就没办法了 国内国外的网络我都试过了 运行起来都是一样的情况...算了 我还等大佬修复github actions吧 谢谢大佬解惑了

国外的网络是指代理吗,你要把代理设置为系统代理后,再运行代码才会有效。

我用的V2ray 我运行代理的时候是选择的全局代理 应该跟你指的系统代理是一样的意思吧

我记得应该不是,v2ray有个自动配置系统代理,要点那个

laihen123 commented 3 months ago

可能是网络原因卡住了

那就没办法了 国内国外的网络我都试过了 运行起来都是一样的情况...算了 我还等大佬修复github actions吧 谢谢大佬解惑了

国外的网络是指代理吗,你要把代理设置为系统代理后,再运行代码才会有效。

我用的V2ray 我运行代理的时候是选择的全局代理 应该跟你指的系统代理是一样的意思吧

我记得应该不是,v2ray有个自动配置系统代理,要点那个 修改了 但是好像没什么效果..还是运行10秒就没有响应了...悲剧

hect0x7 commented 3 months ago

Actions修好了可以用了

biolxy commented 2 months ago
hect0x7 commented 2 months ago
  • 爬虫被识别
<class 'jmcomic.jm_exception.ResponseUnexpectedException'>
请求失败,响应状态码为403,原因为: [ip地区禁止访问/爬虫被识别], URL=[https://18comic.vip/album/520592]
resp: <Response [403]>

不要使用html

colabg commented 1 month ago

Run cd ./usage/ Traceback (most recent call last): File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/usage/workflow_export_favorites.py", line 42, in main() File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/usage/workflow_export_favorites.py", line 38, in main option.call_all_plugin('main', safe=False) File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_option.py", line 551, in call_all_plugin raise e File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_option.py", line 546, in call_all_plugin self.invoke_plugin(pclass, kwargs, extra, pinfo) File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_option.py", line 585, in invoke_plugin self.handle_plugin_jmcomic_exception(e, pinfo, kwargs, plugin, pclass) File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_option.py", line 625, in handle_plugin_jmcomic_exception raise e File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_option.py", line 577, in invoke_plugin plugin.invoke(kwargs) File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_plugin.py", line 122, in invoke client = self.option.build_jm_client(impl=impl) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.11.10/x64/lib/python3.11/site-packages/common/util/decorator_util.py", line 63, in func_exec attr = func(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_option.py", line 386, in build_jm_client return self.new_jm_client(kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_option.py", line 445, in new_jm_client client: AbstractJmClient = clazz( ^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 32, in init self.after_init() File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 1007, in after_init self.ensure_have_cookies() File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 1019, in ensure_have_cookies self['cookies'] = self.get_cookies() ^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.11.10/x64/lib/python3.11/site-packages/common/util/decorator_util.py", line 63, in func_exec attr = func(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 1023, in get_cookies resp = self.setting() ^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 807, in setting resp = self.req_api('/setting') ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 904, in req_api resp = self.get(url, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 38, in get return self.request_with_retry(self.postman.get, url, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 125, in request_with_retry return self.request_with_retry(request, url_backup, domain_index, retry_count + 1, callback, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 125, in request_with_retry return self.request_with_retry(request, url_backup, domain_index, retry_count + 1, callback, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 125, in request_with_retry return self.request_with_retry(request, url_backup, domain_index, retry_count + 1, callback, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [Previous line repeated 2 more times] File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 127, in request_with_retry return self.request_with_retry(request, url_backup, domain_index + 1, 0, callback, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 125, in request_with_retry return self.request_with_retry(request, url_backup, domain_index, retry_count + 1, callback, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 125, in request_with_retry return self.request_with_retry(request, url_backup, domain_index, retry_count + 1, callback, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 125, in request_with_retry return self.request_with_retry(request, url_backup, domain_index, retry_count + 1, callback, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [Previous line repeated 2 more times] File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 127, in request_with_retry return self.request_with_retry(request, url_backup, domain_index + 1, 0, callback, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 125, in request_with_retry return self.request_with_retry(request, url_backup, domain_index, retry_count + 1, callback, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 125, in request_with_retry return self.request_with_retry(request, url_backup, domain_index, retry_count + 1, callback, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 125, in request_with_retry return self.request_with_retry(request, url_backup, domain_index, retry_count + 1, callback, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [Previous line repeated 2 more times] File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 127, in request_with_retry return self.request_with_retry(request, url_backup, domain_index + 1, 0, callback, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 81, in request_with_retry return self.fallback(request, url, domain_index, retry_count, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_client_impl.py", line 214, in fallback ExceptionTool.raises(msg, {}, RequestRetryAllFailException) File "/home/runner/work/JMComic-Crawler-Python/JMComic-Crawler-Python/src/jmcomic/jm_exception.py", line 100, in raises raise e jmcomic.jm_exception.RequestRetryAllFailException: 请求重试全部失败: [/setting], ['www.jmeadpoolcdn.one', 'www.jmeadpoolcdn.life', 'www.jmapiproxyxxx.one'] Error: 进程已结束,退出代码为 1. 大佬问一下这样报错怎么处理报错

hect0x7 commented 1 month ago

已修复,重新运行即可

AntaresD commented 3 weeks ago

屏幕截图 2024-10-18 160803 大佬,您好,请问为什么只会下载两章?,本项目的readme的快速上手,也是这样的结果,只下载了第一章和最后一章。

hect0x7 commented 3 weeks ago

屏幕截图 2024-10-18 160803 大佬,您好,请问为什么只会下载两章?,本项目的readme的快速上手,也是这样的结果,只下载了第一章和最后一章。

你看看在不登录jm的情况下,这个本子能看几章

AntaresD commented 3 weeks ago

屏幕截图 2024-10-18 160803 大佬,您好,请问为什么只下载两章?,本项目的自述文件很快上手,也是这样的结果,只下载了第一章和最后一章。

你看看在不登录jm的情况下,这个本子能看几章

原来如此,那就需要配置option了,感谢大佬,感激不尽!