hect0x7 / JMComic-Crawler-Python

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

发现个章节下载的小问题 #228

Open nakamiv opened 2 months ago

nakamiv commented 2 months ago

比如社团学姐, 漫画id是564268 jmcomic 564268 可以下载到全部。但是她最新章节 561909, 我用jmcomic p561909 就会提示不存在这本漫画。很奇怪的问题 另一本是 大學生活就從社團開始 564184, jmcomic 564184 成功 单独下载章节失败 jmcomic p563992

有时候不想下载整本漫画,因为前面章节看过了。就想下载最新的。

C:\Users\Administrator>jmcomic p563992 [2024-04-22 15:18:20] [MainThread]:【command_line】start downloading...

  • using option: [D:\myoption.yml] to be downloaded:
  • album: []
  • photo: ['563992'] [2024-04-22 15:18:20] [MainThread]:【plugin.invoke】调用插件: [login] [2024-04-22 15:18:20] [MainThread]:【api.setting】change APP_VERSION from [1.6.7] to [1.6.8] [2024-04-22 15:18:21] [Thread-1]:【dler.exception】JmDownloader Exit with exception: (<class 'jmcomic.jm_exception.MissingAlbumPhotoException'>, MissingAlbumPhotoException('请求的本子不存在!(https://18comic.vip/album/396774/)\n原因可能为:\n1. id有误,检查你的本子id\n2. 该漫画只对登录用户可见,请配置你的cookies,或者使用移动端Client(api)\n', {'resp': <jmcomic.jm_client_interface.JmApiResp object at 0x0000028BEE6BDD60>, 'missing_jm_id': '396774'})) Exception in thread Thread-1: Traceback (most recent call last): File "c:\program files\python\lib\threading.py", line 932, in _bootstrap_inner self.run() File "c:\program files\python\lib\threading.py", line 870, in run self._target(*self._args, *self._kwargs) File "c:\program files\python\lib\site-packages\jmcomic\api.py", line 35, in apply_each_obj_func=lambda aid: download_api(aid, File "c:\program files\python\lib\site-packages\jmcomic\api.py", line 86, in download_photo photo = dler.download_photo(jm_photo_id) File "c:\program files\python\lib\site-packages\jmcomic\jm_downloader.py", line 77, in download_photo photo = client.get_photo_detail(photo_id) File "c:\program files\python\lib\site-packages\jmcomic\jm_client_impl.py", line 635, in get_photo_detail self.fetch_photo_additional_field(photo, fetch_album, fetch_scramble_id) File "c:\program files\python\lib\site-packages\jmcomic\jm_client_impl.py", line 714, in fetch_photo_additional_field photo.from_album = self.get_album_detail(photo.album_id) File "c:\program files\python\lib\site-packages\jmcomic\jm_client_impl.py", line 622, in get_album_detail return self.fetch_detail_entity(album_id, File "c:\program files\python\lib\site-packages\jmcomic\jm_client_impl.py", line 180, in cache_wrapper return func(args, **kwargs) File "c:\program files\python\lib\site-packages\jmcomic\jm_client_impl.py", line 663, in fetch_detail_entity resp = self.req_api(self.append_params_to_url( File "c:\program files\python\lib\site-packages\jmcomic\jm_client_impl.py", line 869, in req_api self.require_resp_success(resp, url) File "c:\program files\python\lib\site-packages\jmcomic\jm_client_impl.py", line 916, in require_resp_success ExceptionTool.raise_missing(resp, JmcomicText.parse_to_jm_id(url)) File "c:\program files\python\lib\site-packages\jmcomic\jm_exception.py", line 144, in raise_missing cls.raises( File "c:\program files\python\lib\site-packages\jmcomic\jm_exception.py", line 100, in raises raise e jmcomic.jm_exception.MissingAlbumPhotoException: 请求的本子不存在!(https://18comic.vip/album/396774/) 原因可能为:
    1. id有误,检查你的本子id
    2. 该漫画只对登录用户可见,请配置你的cookies,或者使用移动端Client(api)
hect0x7 commented 2 months ago

我试了下,这个问题的原因似乎是禁漫的数据有误。禁漫返回的章节数据中的本子id不正确,导致请求章节所在本子找不到。

你提到的这两个本子,好像前端时间禁漫调整了他们的本子id,可能是禁漫章节数据没更新。

可以尝试如下任一解决方案:

  1. 用网页端,option配置如下

    client:
    impl: html
  2. 用插件,option配置如下

    plugins:
    after_init:
    - plugin: find_update # 只下载新章插件
      kwargs:
        564268: 561909
        564184: 563962

    然后使用命令(无需追加id):

    jmcomic