如何获取维基百科页面的所有链接及其维基数据 ID?

G. *_*bet 5 wikipedia wikidata-api

(什么时候)以下的事情可能实现?

  • 在单个查询/API 调用中获取维基百科页面上的所有链接及其各自的维基数据 ID 的列表。

  • 通过查询接收各个维基数据项的附加信息,例如属性值。

Ter*_*nja 5

要获取所有维基百科页面链接,您必须使用Wikipedia API,要获取所有维基数据项目属性,您需要Wikidata API,因此不可能创建一个对两个 API 都有两个请求的查询。但!你问题的第一部分已经是可能的。关于第二个......你没有说任何你需要从维基数据获取什么信息。

您可以获得维基数据 ID 以及所有维基百科页面链接的许多其他信息,例如坐标、参考文献、内部和外部链接、图像、文本内容、贡献者、历史、页面权限、类别、模板等...为此,我们只能使用 Wikipedia API,因为我们的入口点是 Wikipedia 页面,加上API 的生成器功能。

例如,以下是获取Dolphin Wikipedia 页面上前 20 个维基间链接的 Wikidata ID、简短介绍文本和主图像的方法:

https://en.wikipedia.org/w/api.php?action=query&generator=links&format=xml&redirects=1&titles=Dolphin&prop=pageprops|extracts|pageimages&gpllimit=20&ppprop=wikibase_item&exintro=1&exlimit=20&piprop=name&pilimit=20
Run Code Online (Sandbox Code Playgroud)

主要查询参数:

  • action=query&format=xml&redirects=1&titles=Dolphin
  • generator=links- 获取所有页面链接(与 一起使用gpllimit=20
  • prop=pageprops|extracts|pageimages- 从链接中可以获得什么

特性:

  • pageprops - 获取维基数据 ID(适用于ppprop=wikibase_item
  • extracts - 从该页面获取第一行文本(与exintro=1和一起使用exlimit=20
  • pageimages - 获取主图像(与piprop=name和 一起使用pilimit=20

以同样的方式,您可以获取参数中列出的其他信息prop