如何从俄语维基百科获取某些电影文章的IMDb ID?

时间:2017-01-24 09:40:58

标签: sparql wikipedia-api wikidata wikidata-api

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

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

其中%s是文章的标题。

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

电影模板的

Russian version表示IMDb ID是自动从维基数据中获取的(英文版本说明了在这个信息框中拒绝任何数据库,而不是底部的链接部分)。

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

1 个答案:

答案 0 :(得分:3)

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

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+.}

每个项目都有:

结果将包括所有维基数据项目,其IMDb ID以及与其链接的ruwiki文章名称。

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

here是一个示例,您只能为俄语页面Приходи пораньше获取 IMDb ID