如何使用Fandom API获取指定分类下的所有页面
实现方法
Fandom基于MediaWiki内核开发,你不需要用allpages接口,直接调用list=categorymembers查询模块就可以实现分类下全页面获取,具体操作如下:
- 基础请求参数配置:
- 必选参数:设置
action=query、list=categorymembers - 必选参数
cmtitle:填写目标分类的完整名称,必须带分类命名空间前缀,例如要查询「游戏角色」分类,就填Category:游戏角色 - 可选参数
cmlimit:设置单次请求返回的最大条目数,普通用户最高可设为500,高权限账号最高可设为5000 - 可选参数
cmnamespace:按命名空间过滤返回结果,例如只需要主空间内容就填0,只需要子分类就填14,不填默认返回所有命名空间的内容
- 必选参数:设置
- 批量分页获取逻辑:
如果目标分类下的页面数量超过你设置的cmlimit上限,接口返回结果中会携带continue和cmcontinue字段,你只需要把返回的cmcontinue值作为参数追加到下一次请求中,循环发起请求直到返回结果无continue字段,即可获取该分类下的全部页面。
你可以参考这个基础请求格式:action=query&list=categorymembers&cmtitle=Category:你的目标分类名&cmlimit=500&format=json
如果需要同时获取页面的额外属性(比如最后编辑时间、页面摘要等),可以把list=categorymembers替换为generator=categorymembers,再搭配对应的prop参数即可一次返回所需的全部信息。
内容的提问来源于stack exchange,提问作者cuneyttyler
相关产品推荐
相关产品推荐

