[Bug] 导出收藏夹数据数据不全
请确认注意事项
- [x] 你已经在GitHub Issues和Discussions里搜索过类似的问题,并且没找到想要的答案。
- [x] 你使用的是最新的jmcomic版本
- [x] 非GitHub Actions类问题(此类问题请专门到置顶的Issue反馈)
发生Bug时,你的使用方式?
Python代码
你是否在禁漫官方网页或APP,验证过相应的功能是正常的?
测试过,禁漫官方功能正常
代码/option配置
https://github.com/White-Frill/JMComic-Crawler-Python/actions/runs/16018709116
描述bug现象(你预期的结果,与实际结果的差别)
使用Github Action导出的收藏夹数据不全,我有三个文件夹,一个默认两个自建的,但是保存下来的收藏夹只有两个自建的,没有默认收藏夹的excel
其他可提供的信息
No response
Actions日志里只能看到一个报错,看起来和(#446)是同一个问题。 上传的文件有密码我打不开,请贴一下你下载下来的文件列表
你的默认收藏夹里的收藏本子数量是多少?
你的默认收藏夹里的收藏本子数量是多少?
默认收藏夹大概有400多个
我在本地试了下,api的导出收藏夹功能是可以【全部】收藏夹的。
你可以再试试,看看能不能复现?
我在本地试了下,api的导出收藏夹功能是可以【全部】收藏夹的。
你可以再试试,看看能不能复现?
沒太玩的懂你的项目怎么本地导出收藏夹落地为文件,但是我debug了一下代码确实能抓到我默认文件夹的内容。但是我又执行了一次GitHub Action,这次导出的csv比上次还少了一个收藏夹的csv,我想还是有些问题
只需要如下代码就可以本地运行,修改username和password即可
from jmcomic import *
op = create_option_by_str('''
plugins:
after_init:
- plugin: login
kwargs:
username: xxx
password: yyy
export:
- plugin: favorite_folder_export
kwargs:
zip_enable: false
zip_filepath: ./
''')
op.call_all_plugin('export', safe=False)
只需要如下代码就可以本地运行,修改username和password即可
from jmcomic import *
op = create_option_by_str(''' plugins: after_init:
- plugin: login kwargs: username: xxx password: yyy export: - plugin: favorite_folder_export kwargs: zip_enable: false zip_filepath: ./ ''') op.call_all_plugin('export', safe=False)
本地确实可以导出除了【全部】以外的所有收藏夹,比GitHub Action齐全,不过有某个线程报错,但导出的收藏夹【1】数量是对齐的,虽然jm app上并没有收藏夹【1】的数量,但是我debug你的api里有我收藏夹【1】的total=459,但还是少了你发的图片中【全部】收藏夹的csv,下面是log [2025-07-04 00:19:06] [MainThread]:【plugin.invoke】调用插件: [login] [2025-07-04 00:19:11] [MainThread]:【api.update_domain.error】自动更新API域名失败,仍使用jmcomic内置域名。可通过代码[JmModuleConfig.FLAG_API_CLIENT_AUTO_UPDATE_DOMAIN=False]关闭自动更新API域名. 异常: Failed to perform, curl: (35) Recv failure: Connection was reset. See https://curl.se/libcurl/c/libcurl-errors.html first for more details. [2025-07-04 00:19:11] [MainThread]:【api】https://www.cdnplaystation6.club/setting [2025-07-04 00:19:12] [MainThread]:【api】https://www.cdnplaystation6.club/login [2025-07-04 00:19:13] [MainThread]:【plugin.login】登录成功 [2025-07-04 00:19:13] [MainThread]:【plugin.invoke】调用插件: [favorite_folder_export] [2025-07-04 00:19:13] [MainThread]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:18] [MainThread]:【req.error】Failed to perform, curl: (35) Recv failure: Connection was reset. See https://curl.se/libcurl/c/libcurl-errors.html first for more details. [2025-07-04 00:19:18] [MainThread]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:18] [MainThread]:【req.retry】次数: [1/5], 域名: [0 of ['www.cdnplaystation6.club', 'www.cdnuc.vip', 'www.cdnplaystation6.org', 'www.cdnmhwscc.vip', 'www.cdn-mspjmapiproxy.xyz']], 路径: [https://www.cdnplaystation6.club/favorite], 参数: [{'params': {'page': 1, 'folder_id': '0', 'o': 'mr'}, 'headers': {'Accept-Encoding': 'gzip, deflate', 'user-agent': 'Mozilla/5.0 (Linux; Android 9; V1938CT Build/PQ3A.190705.11211812; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Safari/537.36', 'token': '64c6f99da0eedc7ccb771becf9031642134', 'tokenparam': '1751559551,1.8.0'}}] [2025-07-04 00:19:21] [Thread-1 (handle_folder)]:【plugin.favorite_folder_export】【收藏夹: 1, fid: 442212】开始获取数据 [2025-07-04 00:19:21] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:21] [Thread-2 (handle_folder)]:【plugin.favorite_folder_export】【收藏夹: xz, fid: 2614126】开始获取数据 [2025-07-04 00:19:21] [Thread-2 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:21] [Thread-3 (handle_folder)]:【plugin.favorite_folder_export】【收藏夹: 已阅, fid: 3498523】开始获取数据 [2025-07-04 00:19:21] [Thread-3 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:21] [Thread-4 (handle_folder)]:【plugin.favorite_folder_export】【收藏夹: 全部, fid: 0】开始获取数据 [2025-07-04 00:19:21] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:22] [Thread-3 (handle_folder)]:【plugin.favorite_folder_export】【收藏夹: 已阅, fid: 3498523】保存文件成功 → [C:\Users\XXXXX\Desktop\py_script\export\【3498523】已阅.csv] [2025-07-04 00:19:22] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:22] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:23] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:24] [Thread-2 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:24] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:24] [Thread-2 (handle_folder)]:【plugin.favorite_folder_export】【收藏夹: xz, fid: 2614126】保存文件成功 → [C:\Users\XXXXX\Desktop\py_script\export\【2614126】xz.csv] [2025-07-04 00:19:26] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:27] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:28] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:29] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:30] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:31] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:32] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:32] [Thread-4 (handle_folder)]:【req.error】Failed to perform, curl: (35) Recv failure: Connection was reset. See https://curl.se/libcurl/c/libcurl-errors.html first for more details. [2025-07-04 00:19:32] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:32] [Thread-4 (handle_folder)]:【req.retry】次数: [1/5], 域名: [0 of ['www.cdnplaystation6.club', 'www.cdnuc.vip', 'www.cdnplaystation6.org', 'www.cdnmhwscc.vip', 'www.cdn-mspjmapiproxy.xyz']], 路径: [https://www.cdnplaystation6.club/favorite], 参数: [{'params': {'page': 6, 'folder_id': '0', 'o': 'mr'}, 'headers': {'Accept-Encoding': 'gzip, deflate', 'user-agent': 'Mozilla/5.0 (Linux; Android 9; V1938CT Build/PQ3A.190705.11211812; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Safari/537.36', 'token': '64c6f99da0eedc7ccb771becf9031642134', 'tokenparam': '1751559551,1.8.0'}}] [2025-07-04 00:19:34] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:36] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:37] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:38] [Thread-4 (handle_folder)]:【req.error】Failed to perform, curl: (35) Recv failure: Connection was reset. See https://curl.se/libcurl/c/libcurl-errors.html first for more details. [2025-07-04 00:19:38] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:38] [Thread-4 (handle_folder)]:【req.retry】次数: [2/5], 域名: [0 of ['www.cdnplaystation6.club', 'www.cdnuc.vip', 'www.cdnplaystation6.org', 'www.cdnmhwscc.vip', 'www.cdn-mspjmapiproxy.xyz']], 路径: [https://www.cdnplaystation6.club/favorite], 参数: [{'params': {'page': 6, 'folder_id': '0', 'o': 'mr'}, 'headers': {'Accept-Encoding': 'gzip, deflate', 'user-agent': 'Mozilla/5.0 (Linux; Android 9; V1938CT Build/PQ3A.190705.11211812; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Safari/537.36', 'token': '64c6f99da0eedc7ccb771becf9031642134', 'tokenparam': '1751559551,1.8.0'}}] [2025-07-04 00:19:38] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:39] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:40] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:43] [Thread-1 (handle_folder)]:【req.error】Failed to perform, curl: (35) Recv failure: Connection was reset. See https://curl.se/libcurl/c/libcurl-errors.html first for more details. [2025-07-04 00:19:43] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:43] [Thread-1 (handle_folder)]:【req.retry】次数: [1/5], 域名: [0 of ['www.cdnplaystation6.club', 'www.cdnuc.vip', 'www.cdnplaystation6.org', 'www.cdnmhwscc.vip', 'www.cdn-mspjmapiproxy.xyz']], 路径: [https://www.cdnplaystation6.club/favorite], 参数: [{'params': {'page': 11, 'folder_id': '442212', 'o': 'mr'}, 'headers': {'Accept-Encoding': 'gzip, deflate', 'user-agent': 'Mozilla/5.0 (Linux; Android 9; V1938CT Build/PQ3A.190705.11211812; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Safari/537.36', 'token': '64c6f99da0eedc7ccb771becf9031642134', 'tokenparam': '1751559551,1.8.0'}}] [2025-07-04 00:19:44] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:45] [Thread-4 (handle_folder)]:【req.error】Failed to perform, curl: (35) Recv failure: Connection was reset. See https://curl.se/libcurl/c/libcurl-errors.html first for more details. [2025-07-04 00:19:45] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:45] [Thread-4 (handle_folder)]:【req.retry】次数: [1/5], 域名: [0 of ['www.cdnplaystation6.club', 'www.cdnuc.vip', 'www.cdnplaystation6.org', 'www.cdnmhwscc.vip', 'www.cdn-mspjmapiproxy.xyz']], 路径: [https://www.cdnplaystation6.club/favorite], 参数: [{'params': {'page': 8, 'folder_id': '0', 'o': 'mr'}, 'headers': {'Accept-Encoding': 'gzip, deflate', 'user-agent': 'Mozilla/5.0 (Linux; Android 9; V1938CT Build/PQ3A.190705.11211812; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Safari/537.36', 'token': '64c6f99da0eedc7ccb771becf9031642134', 'tokenparam': '1751559551,1.8.0'}}] [2025-07-04 00:19:45] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:46] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:47] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:47] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:48] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:49] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:49] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:51] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:53] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:54] [Thread-4 (handle_folder)]:【req.error】Failed to perform, curl: (35) Recv failure: Connection was reset. See https://curl.se/libcurl/c/libcurl-errors.html first for more details. [2025-07-04 00:19:54] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:54] [Thread-4 (handle_folder)]:【req.retry】次数: [1/5], 域名: [0 of ['www.cdnplaystation6.club', 'www.cdnuc.vip', 'www.cdnplaystation6.org', 'www.cdnmhwscc.vip', 'www.cdn-mspjmapiproxy.xyz']], 路径: [https://www.cdnplaystation6.club/favorite], 参数: [{'params': {'page': 11, 'folder_id': '0', 'o': 'mr'}, 'headers': {'Accept-Encoding': 'gzip, deflate', 'user-agent': 'Mozilla/5.0 (Linux; Android 9; V1938CT Build/PQ3A.190705.11211812; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Safari/537.36', 'token': '64c6f99da0eedc7ccb771becf9031642134', 'tokenparam': '1751559551,1.8.0'}}] [2025-07-04 00:19:55] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:57] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:57] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:58] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:19:59] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:20:01] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:20:02] [Thread-4 (handle_folder)]:【req.error】Failed to perform, curl: (35) Recv failure: Connection was reset. See https://curl.se/libcurl/c/libcurl-errors.html first for more details. [2025-07-04 00:20:02] [Thread-4 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:20:02] [Thread-4 (handle_folder)]:【req.retry】次数: [1/5], 域名: [0 of ['www.cdnplaystation6.club', 'www.cdnuc.vip', 'www.cdnplaystation6.org', 'www.cdnmhwscc.vip', 'www.cdn-mspjmapiproxy.xyz']], 路径: [https://www.cdnplaystation6.club/favorite], 参数: [{'params': {'page': 13, 'folder_id': '0', 'o': 'mr'}, 'headers': {'Accept-Encoding': 'gzip, deflate', 'user-agent': 'Mozilla/5.0 (Linux; Android 9; V1938CT Build/PQ3A.190705.11211812; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Safari/537.36', 'token': '64c6f99da0eedc7ccb771becf9031642134', 'tokenparam': '1751559551,1.8.0'}}] Exception in thread Thread-4 (handle_folder): Traceback (most recent call last): File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\threading.py", line 1016, in _bootstrap_inner self.run() File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\threading.py", line 953, in run self._target(*self._args, **self._kwargs) File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\jmcomic\jm_plugin.py", line 676, in handle_folder page_data = self.fetch_folder_page_data(fid) File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\jmcomic\jm_plugin.py", line 690, in fetch_folder_page_data page_data = list(self.cl.favorite_folder_gen(folder_id=fid)) File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\jmcomic\jm_client_interface.py", line 534, in favorite_folder_gen yield from self.do_page_iter(params, page, self.favorite_folder) File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\jmcomic\jm_client_interface.py", line 515, in do_page_iter page_content = get_page_method(**params) File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\jmcomic\jm_client_impl.py", line 865, in favorite_folder resp = self.req_api( File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\jmcomic\jm_client_impl.py", line 914, in req_api self.require_resp_success(resp, url) File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\jmcomic\jm_client_impl.py", line 957, in require_resp_success resp.require_success() File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\jmcomic\jm_client_interface.py", line 42, in require_success ExceptionTool.raises_resp(self.error_msg(), self) File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\jmcomic\jm_exception.py", line 130, in raises_resp cls.raises( File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\jmcomic\jm_exception.py", line 107, in raises raise e jmcomic.jm_exception.ResponseUnexpectedException: {"code":401,"data":"slsmbmwWEGNAY0gdzZYemyzkSE+1eGv1ke0tn22+KCA=","errorMsg":"請先登入會員"} [2025-07-04 00:20:06] [Thread-1 (handle_folder)]:【api】https://www.cdnplaystation6.club/favorite [2025-07-04 00:20:07] [Thread-1 (handle_folder)]:【plugin.favorite_folder_export】【收藏夹: 1, fid: 442212】保存文件成功 → [C:\Users\XXXXX\Desktop\py_script\export\【442212】1.csv]//
我感觉这个报错就是actions漏数据的原因,但是这个报错到底是啥情况,我也不清楚,我感觉大概率是禁漫的bug😂
虽然没仔细看过项目代码,但是根据经验和panic log,感觉像是Thread-4丢失了登录态,根据自己使用jm app的体验来看,也经常会出现莫名的情况弹框401报错未登录重启app才行,可能是jm server有问题导致丢失了登录态,捕获一下这个异常然后重新login一下或许有效果
我感觉这个报错就是actions漏数据的原因,但是这个报错到底是啥情况,我也不清楚,我感觉大概率是禁漫的bug😂