You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Wikimedia Commons API示例,获取用户上传文件的分类、维基文本及结构化数据

修改Wikimedia Commons「获取特定用户上传文件」API示例的方案

核心思路

原API示例仅返回上传文件的基础信息,要扩展返回分类、维基文本和结构化数据,需结合**生成器(generator)**和多属性(prop)查询,通过一次请求关联获取多维度数据。

完整API请求

https://commons.wikimedia.org/w/api.php?action=query&generator=alluploads&gailimit=10&gaiuser=YourTargetUser&prop=categories|revisions|structureddata&rvprop=content&sdprop=entityid|statement&format=json

参数详解

  • generator=alluploads:以目标用户上传的文件为基础,生成待查询的页面集合
  • gaiuser=YourTargetUser:替换为你要查询的用户名
  • gailimit=10:控制单次返回的文件数量(可按需调整,最大受API限制)
  • prop=categories|revisions|structureddata:同时请求三类数据:
    • categories:返回文件所属的所有分类
    • revisions:返回页面的修订内容(配合rvprop=content获取维基文本)
    • structureddata:返回页面关联的结构化数据
  • rvprop=content:指定修订信息返回页面的原始维基文本
  • sdprop=entityid|statement:指定结构化数据返回Wikidata实体ID及声明内容(如需更详细数据,可添加value或reference)

返回结果说明

  • 分类:在categories字段下,包含分类名称(title)和分类页面ID(pageid)
  • 维基文本:在revisions字段的*属性中,是文件页面的完整编辑内容(含模板、描述等)
  • 结构化数据:在structureddata字段下,entityid对应关联的Wikidata条目ID,statement包含各类结构化声明(如版权、作者信息)

分页处理

当用户上传文件数量超过gailimit时,响应会返回gaicontinue参数,将其加入下一次请求即可获取后续数据,示例:

https://commons.wikimedia.org/w/api.php?action=query&generator=alluploads&gailimit=10&gaiuser=YourTargetUser&prop=categories|revisions|structureddata&rvprop=content&sdprop=entityid|statement&format=json&gaicontinue=xxx

内容的提问来源于stack exchange,提问作者Dan Jacobson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 03:40:20