hect0x7 / JMComic-Crawler-Python

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

如何查询排行榜数据 #179

Closed jenovasephiroth closed 5 months ago

hect0x7 commented 9 months ago

暂时没有实现这个接口

jenovasephiroth commented 9 months ago

哈哈哈,是的,我翻了半天没找到这个,我还在想是不是我看代码少了啥呢

jenovasephiroth commented 9 months ago

实现的应该是登录、查询和下载的功能,不太会改

hect0x7 commented 9 months ago

你有兴趣帮忙实现这个排行榜功能吗? 大概分这么几步:

  1. 增加接口
  2. 实现html版本,api版本

我看了下网页版的排行榜,感觉和搜索页面差不多,正则表达式和请求方法都可以复用

jenovasephiroth commented 9 months ago

感觉完成不了,看到大概应该是在jm_client_impl.py中扩展方法,但是功底差了点

jenovasephiroth commented 9 months ago

可行的建议是这个接口有2个变量,一个迭代次数,一个是最终获取的id数,不然这个是无限循环的获取; 或者是做2个接口,一个指定查询page,另一个是获取指定前n页

hect0x7 commented 9 months ago

v2.4.9 已实现 参考如下代码:

from jmcomic import *

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

# 月排行
page: JmCategoryPage = cl.month_ranking(1)
# 周排行
page: JmCategoryPage = cl.week_ranking(1)

# 循环获取分页,使用更底层的 categories_filter 和 categories_filter_gen
for page in cl.categories_filter_gen(1,
                                  JmMagicConstants.TIME_WEEK,
                                  JmMagicConstants.CATEGORY_ALL,
                                  JmMagicConstants.ORDER_BY_VIEW,
                                  ):
    for aid, atitle in page:
        print(aid, atitle)
jenovasephiroth commented 7 months ago

da9dc8aa039177cb80ded96b60fea95 想问下这个应该怎么查询呢?

hect0x7 commented 7 months ago

这个要使用参数category

# 周排行
page: JmCategoryPage = cl.week_ranking(1,
                                       category=JmMagicConstants.CATEGORY_SINGLE # 类别选择单本
                                       )