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

如何通过单次API调用获取多语言维基百科的页面ID与Wikidata ID?

解决维基百科API多语言页面信息查询问题

没问题,我来帮你搞定这个维基百科API的调用问题!

你之前的调用存在一个关键错误:重复使用了prop参数,维基API会自动覆盖重复的参数,导致你只能拿到最后一个prop指定的数据(也就是langlinks),而丢失了pageprops的内容。正确的做法是把多个需要的属性用竖线|合并到同一个prop参数里。

第一步:修正基础调用,获取Wikidata条目和多语言标题

先使用这个修正后的API调用,它会同时返回英文页面的Wikidata条目ID,以及对应德语、法语版本的页面标题:

https://en.wikipedia.org/w/api.php?action=query&prop=pageprops|langlinks&ppprop=wikibase_item&lllang=de&lllang=fr&redirects=1&format=xml&titles=Cat

参数说明:

  • prop=pageprops|langlinks:同时请求页面属性和语言链接数据
  • ppprop=wikibase_item:只返回Wikidata条目ID这个页面属性
  • lllang=de&lllang=fr:指定要获取德语和法语的语言链接
  • redirects=1:自动处理重定向,确保拿到正确的页面数据

第二步:获取多语言页面的ID

如果你还需要德语、法语页面本身的页面ID,可以用以下两种方式:

方式一:在同一个英文API调用中批量查询

直接在titles参数里加上语言前缀(de:代表德语维基,fr:代表法语维基),同时请求info属性来获取页面ID:

https://en.wikipedia.org/w/api.php?action=query&prop=pageprops|info&ppprop=wikibase_item&redirects=1&format=xml&titles=Cat|de:Katze|fr:Chat

这个调用会一次性返回三个页面的信息:

  • 各自的pageid(页面ID)
  • 统一的wikibase_item(所有语言页面对应的Wikidata条目是同一个,比如Q146)

方式二:调用目标语言的维基API

如果你更偏好直接调用对应语言的维基站点API,比如获取德语页面信息:

https://de.wikipedia.org/w/api.php?action=query&prop=pageprops&ppprop=wikibase_item&redirects=1&format=xml&titles=Katze

法语页面的调用只需替换域名为fr.wikipedia.org,标题换成Chat即可。

小提示

如果是在编程中处理数据,建议把format=xml换成format=json,JSON格式的数据会更易于解析和处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:46:06