4

我正在收集一些俄语电影的数据,并且使用 Wikipedia API,我可以以 JSON 格式查询有关所需电影的数据:

https://ru.wikipedia.org/w/api.php?format=json&action=query&prop=revisions&rvprop=content&titles=%s

%s文章的标题在哪里。

必需属性之一 - IMDb ID。这里的问题是,并非所有文章都在 wiki 标记中包含它(实际上是在电影模板中),但总是呈现页面。

俄语版的电影模板说 IMDb ID 是自动从 Wikidata 中获取的(英文版说完全拒绝此信息框中的任何数据库,而支持底部的链接部分)。

有没有办法使用 Wikipedia API 或 Wikidata API 请求 IMDb ID?

4

1 回答 1

4

您可以通过Wikidata Query Service获取所有具有 IMDb ID 并链接到 ruwiki 的 Wikidata 电影项目:

SELECT ?item ?IMDb_ID ?sitelink WHERE {
  ?item wdt:P31 wd:Q11424 .
  ?item wdt:P345 ?IMDb_ID .
  ?sitelink schema:about ?item ; schema:isPartOf <https://ru.wikipedia.org/> .
}

或者

https://query.wikidata.org/bigdata/namespace/wdq/sparql?format=json&query=SELECT+?item+?IMDb_ID+?sitelink+WHERE+{?item+wdt:P31+wd:Q11424+.?item+wdt:P345+?IMDb_ID+.?sitelink+schema:about+?item+;+schema:isPartOf+%3Chttps://ru.wikipedia.org/%3E+.}

每个项目都有:

结果将包括所有 Wikidata 项目、它们的 IMDb ID 以及与它们链接的 ruwiki 文章名称。

{
  "item" : {
    "value" : "http://www.wikidata.org/entity/Q203063"
  },
  "IMDb_ID" : {
    "value" : "tt0457308"
  },
  "sitelink" : {
    "value" : "https://ru.wikipedia.org/wiki/Приходи_пораньше"
  }
},
...

这是一个示例您如何仅获取俄语页面Приходи пораньше的IMDb ID

于 2017-01-27T15:34:11.207 回答