用户:RedDragon/Test4
More languages
More actions
本页面介绍如何通过 MediaWiki 的 `api.php` 接口获取维基站点数据,包括页面源代码、页面信息、Cargo表格数据等。
请求地址
所有 API 请求都发送到站点的 `api.php` 文件:
https://rizwiki.cn/api.php
参数详解
通用参数
以下是所有 MediaWiki API 请求中最常用的通用参数。
action(操作类型)
指定要执行的操作,是 API 请求的核心参数。
| 值 | 说明 |
|---|---|
query |
查询页面信息、内容、列表等 |
parse |
解析页面内容,返回 HTML |
cargoquery |
查询 Cargo 扩展的数据表 |
cargotables |
列出所有 Cargo 数据表 |
cargofields |
列出指定 Cargo 表的字段 |
cargoexport |
导出 Cargo 表数据 |
format(输出格式)
指定返回数据的格式。
| 值 | 说明 |
|---|---|
json |
JSON 格式 |
xml |
XML 格式 |
jsonfm |
格式化的 JSON |
raw |
原始文本 |
titles(页面标题)
指定一个或多个页面标题,多个标题用 | 分隔。
示例:
titles=机制
titles=机制|设置|活动
pageid(页面ID)
用数字 ID 指定页面,可与 titles 互换使用。
示例:
pageid=292
limit(返回数量限制)
限制单次请求返回的记录数。
offset(偏移量)
用于分页。指定跳过前面多少条记录,从第 offset+1 条开始返回。
示例:获取第 101–200 条记录
limit=100&offset=100
Query 操作参数
当 action=query 时,以下参数用于指定要返回的内容。
prop(属性/属性集)
决定返回页面的哪些信息。多个值用 | 分隔。
| 值 | 说明 |
|---|---|
info |
页面基本信息(ID、命名空间、长度等) |
revisions |
页面修订版本信息(结合 rvprop 使用)
|
links |
页面中的向外链接 |
linkshere |
链入该页面的页面 |
categories |
页面所属的分类 |
images |
页面中使用的图片 |
templates |
页面中使用的模板 |
rvprop(修订版本属性)
当 prop=revisions 时,rvprop 决定返回修订版本的哪些信息。多个值用 | 分隔。
| 值 | 说明 |
|---|---|
content |
页面源代码 |
timestamp |
修订时间戳 |
user |
做出修订的用户 |
comment |
编辑摘要 |
size |
页面大小 |
list(列表)
用于获取站点的各种列表信息。
| 值 | 说明 | 配合参数 |
|---|---|---|
search |
搜索结果 | srsearch(搜索关键词)
|
allpages |
站点所有页面 | aplimit(数量限制)
|
recentchanges |
最近更改 | rclimit(数量限制)
|
random |
随机页面 | rnlimit(数量限制)
|
categorymembers |
某分类下的所有页面 | cmtitle(分类名)
|
Cargo 扩展参数
以下参数仅用于 action=cargoquery。
核心参数
| 参数 | 是否必需 | 说明 |
|---|---|---|
tables |
必需 | 指定要查询的数据表名。多个表用 | 分隔。
|
fields |
可选(默认返回所有字段) | 指定要返回的字段。多个字段用逗号分隔。特殊字段:_pageName(来源页面标题)、_pageID(来源页面ID)、COUNT(*)(统计总数)
|
where |
可选 | 筛选条件,相当于 SQL 的 WHERE 子句。字符串值需用引号。
|
order_by |
可选 | 排序字段及方向,相当于 SQL 的 ORDER BY。多个字段用逗号分隔。
|
limit |
可选 | 返回记录数上限。默认值通常为 50,最大值通常为 500。 |
offset |
可选 | 分页偏移量,跳过前 N 条记录。 |
高级参数
| 参数 | 说明 |
|---|---|
group_by |
分组字段,相当于 SQL 的 GROUP BY。用于聚合统计。
|
having |
分组后的过滤条件,配合 group_by 使用,相当于 SQL 的 HAVING。
|
join_on |
多表连接条件,配合 tables 中的多个表名使用,相当于 SQL 的 JOIN ... ON。
|
format |
输出格式,与通用 format 相同。
|
Cargo 专用操作(非 cargoquery)
以下参数用于 action 参数,专门处理 Cargo 元数据。
| action 值 | 说明 | 配合参数 |
|---|---|---|
cargotables |
列出系统中所有 Cargo 数据表 | 无 |
cargofields |
列出指定 Cargo 表的所有字段 | table(表名,必需)
|
cargoexport |
导出 Cargo 表数据 | tables、fields、where、format
|
操作实例
页面操作实例
实例 1:获取页面源代码
获取单个页面的 Wikitext 源代码。
https://rizwiki.cn/api.php?action=query&titles=机制&prop=revisions&rvprop=content&format=json
实例 2:批量获取多个页面源代码
用 | 分隔多个标题。
https://rizwiki.cn/api.php?action=query&titles=机制|设置|活动|收藏&prop=revisions&rvprop=content&format=json
实例 3:获取页面基本信息
获取页面的 ID、命名空间、长度、保护状态等。
https://rizwiki.cn/api.php?action=query&titles=机制&prop=info&format=json
实例 4:同时获取页面源代码和基本信息
使用 | 组合多个 prop 值。
https://rizwiki.cn/api.php?action=query&titles=机制&prop=info|revisions&rvprop=content&format=json
实例 5:获取页面分类
列出页面所属的所有分类。
https://rizwiki.cn/api.php?action=query&titles=机制&prop=categories&format=json
实例 6:获取页面的向外链接
列出页面中链接到的其他页面。
https://rizwiki.cn/api.php?action=query&titles=机制&prop=links&format=json
实例 7:获取链入页面
列出哪些页面链接到当前页面。
https://rizwiki.cn/api.php?action=query&titles=机制&prop=linkshere&format=json
实例 8:获取页面解析后的 HTML
返回页面渲染后的完整 HTML。
https://rizwiki.cn/api.php?action=parse&page=机制&format=json
实例 9:获取所有页面的列表
分页获取全站页面标题(每页 50 条)。
https://rizwiki.cn/api.php?action=query&list=allpages&aplimit=50&format=json
实例 10:获取所有页面的下一页
使用返回的 apcontinue 值继续获取。
https://rizwiki.cn/api.php?action=query&list=allpages&aplimit=50&apcontinue=上一页最后一个标题&format=json
实例 11:获取分类下的所有页面
获取“分类:介绍”下的所有页面。
https://rizwiki.cn/api.php?action=query&list=categorymembers&cmtitle=Category:介绍&format=json
实例 12:获取随机页面
获取 5 个随机页面。
https://rizwiki.cn/api.php?action=query&list=random&rnlimit=5&format=json
实例 13:获取最近更改
获取最近 10 条编辑记录。
https://rizwiki.cn/api.php?action=query&list=recentchanges&rclimit=10&format=json
实例 14:最简单方式获取源代码(非 API)
不通过 api.php,直接使用 index.php:
https://rizwiki.cn/index.php?title=机制&action=raw
注意:此方法不适用于特殊页面(Special: 命名空间)和 Cargo 页面。
Cargo 操作实例
以下实例基于 Songs 数据表。
实例 15:获取所有 Cargo 表列表
https://rizwiki.cn/api.php?action=cargotables&format=json
实例 16:获取 Songs 表的字段结构
https://rizwiki.cn/api.php?action=cargofields&table=Songs&format=json
实例 17:基本 Cargo 查询
查询 Songs 表的前 10 条记录,返回Title、Artist和Length。
https://rizwiki.cn/api.php?action=cargoquery&tables=Songs&fields=Title,Artist,Length&limit=10&format=json
实例 18:带条件(WHERE)的 Cargo 查询
查询Artist为“EBIMAYO”的歌曲。
https://rizwiki.cn/api.php?action=cargoquery&tables=Songs&fields=Title,Artist,Length&where=Artist='EBIMAYO'&format=json
实例 19:多条件组合查询
查询 BPM 大于 140 且时长小于 120 秒的歌曲。
https://rizwiki.cn/api.php?action=cargoquery&tables=Songs&fields=Title,Artist,BPM,Length_Sec&where=BPM_Val>140 AND Length_Sec<120&format=json
实例 20:带排序(ORDER BY)的 Cargo 查询
按 BPM 降序列出所有歌曲。
https://rizwiki.cn/api.php?action=cargoquery&tables=Songs&fields=Title,Artist,BPM_Val&order_by=BPM_Val%20DESC&limit=20&format=json
实例 21:多字段排序
先按Artist升序,再按 BPM 降序。
https://rizwiki.cn/api.php?action=cargoquery&tables=Songs&fields=Artist,Title,BPM_Val&order_by=Artist%20ASC,BPM_Val%20DESC&limit=50&format=json
实例 22:获取 Songs 表总记录数
https://rizwiki.cn/api.php?action=cargoquery&tables=Songs&fields=COUNT(*)&format=json
实例 23:Cargo 查询分页(OFFSET)
获取第 51–100 条记录(跳过前 50 条,取 50 条)。
https://rizwiki.cn/api.php?action=cargoquery&tables=Songs&fields=Title,Artist&limit=50&offset=50&format=json
实例 24:查询Original歌曲
https://rizwiki.cn/api.php?action=cargoquery&tables=Songs&fields=Title,Artist,RizlineOriginal&where=RizlineOriginal=1&format=json
实例 25:查询各难度谱面的物量信息
返回歌曲标题及各难度的物量(Hit)数据。
https://rizwiki.cn/api.php?action=cargoquery&tables=Songs&fields=Title,EZ_Hit,HD_Hit,IN_Hit,AT_Hit&limit=20&format=json