如何获取维基数据上所有电影的列表?

How to get a list of all films on Wikidata?

我正在使用 Freebase 为我的网站获取所有 movies/films,但它很快就会关闭。所以我在寻找另一个免费的电影数据库时遇到了维基数据。老实说,查询所有电影太复杂了。

所以我想你们可以帮助我获得维基数据中的所有电影。以后我也想收录电视剧和连续剧。

编程语言无关紧要,我想使用带有 link 的网络查询。

你可以查找所有属于电影实例的实体,在维基数据中翻译为:

P31 (instance of) -> Q11424(电影)[​​=18=]

目前,执行此查询的最佳方法是使用 wdq.wmflabs.org API,其中此查询翻译为:http://wdq.wmflabs.org/api?q=claim[31:11424](避免在浏览器中进行此查询因为它可能会由于 ) 而导致崩溃。在我写作的那一刻,这请求 returns 157038 个数字 ID 形式的项目(例如:125)。要获取维基数据 ID,只需添加前导 Q -> Q125.

要从所有这些维基数据 id 中获取标签和数据,请使用维基数据 API wbgetentities 操作:https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q180736&format=json&languages=en。 不过要注意每个查询 50 个实体的限制

[更新] 维基数据现在提供 SPARQL endpoints: the same query in SPARQL or even this same query but also including subclasses of films