【问题标题】:How to get all links and their Wikidata IDs for a Wikipedia page?如何获取 Wikipedia 页面的所有链接及其 Wikidata ID?
【发布时间】:2016-05-07 21:30:33
【问题描述】:

(何时)以下可能?

  • 在单个查询/API 调用中获取 Wikipedia 页面上所有链接及其各自 Wikidata ID 的列表。

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

【问题讨论】:

  • 我投票结束这个问题,因为它不是一个问题。
  • @PaulCollingwood,是的,这是个问题,但 GautamSavaliya 被删除了(查看历史记录)。

标签: wikipedia wikidata-api


【解决方案1】:

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

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

例如,这是在Dolphin Wikipedia 页面上获取 Wikidata ID、简短介绍文本和前 20 个跨wiki 链接的主图像的方法:

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

主要query参数:

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

属性:

  • pageprops - 获取 Wikidata ID(与 ppprop=wikibase_item 一起使用)
  • extracts - 从该页面获取第一行文本(与 exintro=1exlimit=20 一起使用)
  • pageimages - 获取主图像(与 piprop=namepilimit=20 一起使用)

以同样的方式,您可以在参数prop 中获得另一个信息here

【讨论】:

  • 感谢您的回答!除了已经查询的信息之外,是否可以通过查询修改接收 wikidata 属性,例如instance of(所以,再一次,所有内容都在一个查询中)?
  • 这是两个不同的API,对应两个不同的数据库。 interwiki 链接位于 Wikipedia 文章中,无法通过 Wikidata API 访问,因为 Wikidata 中没有它们的信息。此外,这些属性位于 Wikidata 中,无法通过 Wikipedia API 访问
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 2017-04-17
  • 2020-02-29
相关资源
最近更新 更多