Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

本页面介绍如何通过 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 表数据 tablesfieldswhereformat

操作实例

页面操作实例

实例 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
Contents
Cookies help us deliver our services. By using our services, you agree to our use of cookies.