hect0x7 / JMComic-Crawler-Python

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

如何获取Album的大标签,如同人、韩漫、3D这种 #205

Closed Yunxi-awa closed 5 months ago

Yunxi-awa commented 5 months ago

如题,只看到config有定义,没看到接口🤔

hect0x7 commented 5 months ago

这个属性实体类里是没有的,暂时获取不了。 如果要获取的话,网页端可以加个正则表达式,但APP端接口没有返这个字段,所以这又是一个没法统一的字段。 config确实有定义,主要是用在分类排行方法的参数,例如:

from jmcomic import *

op = JmOption.default()
cl = op.new_jm_client()

# 获取周排行,类别选择韩漫(CATEGORY_HANMAN)
page = cl.week_ranking(page=1,
                       category=JmMagicConstants.CATEGORY_HANMAN,
                       )

for aid, atitle in page:
    print(aid, atitle)
Yunxi-awa commented 5 months ago

image 我看到搜索结果是有右上角的角标的,可以为JmSearchPage添加一个category的属性来获取大标签吗

hect0x7 commented 5 months ago

可以加,但感觉意义不大。另外其实APP端的search接口是有返回category这个字段的。

from jmcomic import *

op = JmOption.default()
cl = op.new_jm_client(impl='api')

page = cl.search_site('无修正')
for aid, ainfo in page.content:
    print(aid, ainfo['category']['title'])

"""
535012 同人
535020 同人
535028 同人
535045 同人
534968 其他類
526005 單本
378630 單本
"""
Yunxi-awa commented 5 months ago

可以加,但感觉意义不大。另外其实APP端的search接口是有返回类别这个字段的。

from jmcomic import *

op = JmOption.default()
cl = op.new_jm_client(impl='api')

page = cl.search_site('无修正')
for aid, ainfo in page.content:
    print(aid, ainfo['category']['title'])

"""
535012 同人
535020 同人
535028 同人
535045 同人
534968 其他類
526005 單本
378630 單本
"""

感谢大佬🙏

Yunxi-awa commented 5 months ago
    def parse_api_to_search_page(cls, data: DictModel) -> JmSearchPage:
        """
        model_data: {
          "search_query": "MANA",
          "total": "177",
          "content": [
            {
              "id": "441923",
              "author": "MANA",
              "description": "",
              "name": "[MANA] 神里绫华5",
              "image": "",
              "category": {
                "id": "1",
                "title": "同人"
              },
              "category_sub": {
                "id": "1",
                "title": "同人"
              }
            }
          ]
        }
        """
        total: int = int(data.total or 0)  # 2024.1.5 data.total可能为None
        content = cls.adapt_content(data.content)
        return JmSearchPage(content, total)

这里的categoriy和category_sub有什么区别?

hect0x7 commented 5 months ago

    def parse_api_to_search_page(cls, data: DictModel) -> JmSearchPage:

        """

        model_data: {

          "search_query": "MANA",

          "total": "177",

          "content": [

            {

              "id": "441923",

              "author": "MANA",

              "description": "",

              "name": "[MANA] 神里绫华5",

              "image": "",

              "category": {

                "id": "1",

                "title": "同人"

              },

              "category_sub": {

                "id": "1",

                "title": "同人"

              }

            }

          ]

        }

        """

        total: int = int(data.total or 0)  # 2024.1.5 data.total可能为None

        content = cls.adapt_content(data.content)

        return JmSearchPage(content, total)

这里的categoriy和category_sub有什么区别?

问得好,其实我也不知道🤣

Yunxi-awa commented 5 months ago

{'id': '19', 'author': '渚ミナミ', 'description': None, 'name': '[渚ミナミ] 怪盗熟女クロアゲハ', 'image': '', 'category': {'id': '2', 'title': '单本'}, 'category_sub': {'id': '5', 'title': '韩漫'}, 'liked': False, 'is_favorite': False, 'tags': []} 这是程序运行中debug的输出,明显发现category_sub的id为5与19大相径庭。在禁漫APP上也没发现id=5的韩漫为什么跟id=19有关