Sparql 如何从俄罗斯维基百科获取电影文章的IMDb ID?

Sparql 如何从俄罗斯维基百科获取电影文章的IMDb ID?,sparql,wikipedia-api,wikidata,wikidata-api,Sparql,Wikipedia Api,Wikidata,Wikidata Api,我正在收集一些俄语电影的数据,使用Wikipedia API,我可以以JSON格式查询所需电影的数据: https://ru.wikipedia.org/w/api.php?format=json&action=query&prop=revisions&rvprop=content&titles=%s 其中,%s是文章的标题 其中一个必需的属性是IMDb ID。这里的问题是,并非所有的文章都在wiki标记中包含它(实际上是在电影模板中),而是始终呈现页面 《电影

我正在收集一些俄语电影的数据,使用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?

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

其中每个项目都有:

  • 有价值的财产
  • 我们正在寻找的财产
  • 和俄罗斯维基百科的网站链接
结果将包括所有Wikidata项、它们的IMDb ID以及与它们链接的Wiki文章名

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

这是一个示例,说明如何仅为俄语页面获取IMDb ID

您是否尝试使用OMDb API。它会获取IMDb ID,例如:@Vikash是的,目前我使用OMDb API,但是如果文章中没有,从哪里获取ID?太慢了。。。大约需要5-8秒才能找到。但它是有效的,谢谢@赛博软件。我不知道您使用的是什么语言,但是您是否尝试过始终使用查询获取所有IMDb ID并按特定标题在其中搜索的变体?我想知道如果您必须使用“慢速”查询直接通过同一标题获取此ID,速度会有什么不同。结果是:下载到内存5秒,按URL搜索0.7毫秒。我使用java 1.8,搜索使用并行流API完成(在我的案例中,调试显示了3个线程)。这比将查询发送到服务器并等待响应更快。。。可能是服务器速度慢,或者是网络延迟
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+.}
{
  "item" : {
    "value" : "http://www.wikidata.org/entity/Q203063"
  },
  "IMDb_ID" : {
    "value" : "tt0457308"
  },
  "sitelink" : {
    "value" : "https://ru.wikipedia.org/wiki/Приходи_пораньше"
  }
},
...