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

怎么使用jmcomic的搜索api #246

Closed LankGG closed 1 month ago

LankGG commented 1 month ago

image

LankGG commented 1 month ago

image 是第4行,估计是无法获取APP,可是官网好像只有apk,我抱着侥幸的心态去https://github.com/tonquer/JMComic-qt/releases找到了电脑的客户端,但是最高版本只有1.2.2,下载下来试了一下好像并不行。所以请问作者有客户端的下载链接提供吗?谢谢

hect0x7 commented 1 month ago

你会编程吗?

LankGG commented 1 month ago

你会编程吗?

会一点爬虫,爬过hanime(纯自己写的)。现在想写jm的爬虫,但发现jm有点难,来github找帮助了。其实我是可以自己写爬虫获取到aid的,然后通过作者提供的api:jmcomic.download_album下载文件。但这本质上重复爬了两遍jm的服务器。所以基于减小服务器压力和偷懒(不是)的原则,先问问大家有没有什么好的解决方案

hect0x7 commented 1 month ago

好吧,首先你需要理解下代码的意思:

# 创建一个client对象
client = op.new_jm_client()
# 调用client对象的search_site方法,search_site是禁漫的“站内搜索”
page = client.search_site('新堂エル')
# page是分页结果
# 下面是遍历page
for aid, atitle in page:
    print(aid)
hect0x7 commented 1 month ago
  1. client只是一个对象,不是什么电脑客户端,和JMComic-qt也无关
  2. 你的代码运行时正常的,你看不到输出,说明搜索没有结果
hect0x7 commented 1 month ago
  1. 你使用search_tag没有结果,可以换成别的api。search_tag是搜标签。 换成什么呢?你用ide看代码提示 client.search_xxxx 会出来其他方法。 推荐使用 search_site
LankGG commented 1 month ago

哦哦哦哦哦,好的,谢谢义父。

hect0x7 commented 1 month ago

综合以上几点,对代码稍加改造,如下:

client = op.new_jm_client()
page = client.search_site('新堂エル', page=1)

id_list = []
for aid, atitle in page:
    print(aid, atitle)
    id_list.append(aid)

# 要下载这些aid的本子,调用下面的方法
# download_album(aid)