2

我目前正在尝试查找在 Wikimedia Commons 上使用特定类别的图像/媒体的所有页面。

使用 API,我可以毫无问题地列出所有图像,但我很难将查询添加到使用项目的所有页面中。

这是一个示例类别,只有两个媒体图像 https://commons.wikimedia.org/wiki/Category:Automobiles

这是我正在使用的 API 调用

https://commons.wikimedia.org/w/api.php?action=query&prop=images&format=json&generator=categorymembers&gcmtitle=Category%3AAutomobiles&gcmprop=title&gcmnamespace=6&gcmlimit=200&gcmsort=sortkey

长期目标是找到我们收藏中的图像出现的所有页面,然后从这些页面中获取有关图像的所有标签。然后,我们可以使用它来增强我们对这些图像的信息存档,并希望使用链接数据来找到我们可能不从 DBpedia 知道的相关图像。

我可能需要做两个查询,首先获取图像,然后请求有关每个页面的信息,但我希望在一次调用中完成所有操作。

4

2 回答 2

1

假设您不需要递归到子类别中,您可以只使用带有 的prop=globalusage查询generator=categorymembers,例如:

https://commons.wikimedia.org/w/api.php?action=query&prop=globalusage&generator=categorymembers&gcmtitle=Category:Images_from_the_German_Federal_Archive&gcmtype=file&gcmlimit=200&continue=

JSON 格式的输出将如下所示:

// ...snip...
"6197351": {
    "pageid": 6197351,
    "ns": 6,
    "title": "File:-Bundesarchiv Bild 183-1987-1225-004, Schwerin, Thronsaal-demo.jpg",
    "globalusage": [
        {
            "title": "Wikipedia:Fotowerkstatt/Archiv/2009/M\u00e4rz",
            "wiki": "de.wikipedia.org",
            "url": "https://de.wikipedia.org/wiki/Wikipedia:Fotowerkstatt/Archiv/2009/M%C3%A4rz"
        }
    ]
},
"6428927": {
    "pageid": 6428927,
    "ns": 6,
    "title": "File:-Fernsehstudio-Journalistengespraech-crop.jpg",
    "globalusage": [
        {
            "title": "Kurt_von_Gleichen-Ru\u00dfwurm",
            "wiki": "de.wikipedia.org",
            "url": "https://de.wikipedia.org/wiki/Kurt_von_Gleichen-Ru%C3%9Fwurm"
        },
        {
            "title": "Wikipedia:Fotowerkstatt/Archiv/2009/April",
            "wiki": "de.wikipedia.org",
            "url": "https://de.wikipedia.org/wiki/Wikipedia:Fotowerkstatt/Archiv/2009/April"
        }
    ]
},
// ...snip...

请注意,您很可能必须处理查询延续,因为可能很容易获得比 MediaWiki 在单个请求中返回的结果更多的结果。有关处理这些的更多信息,请参阅链接页面(或仅使用为您处理它们的 MW API 客户端)。

于 2015-06-26T11:24:06.227 回答
0

我不了解您的用例(“我们的集合”?)所以我不知道您为什么要直接使用 API,但是如果您想在类别中递归,您将进行大量的轮子改造。

大多数人使用 MediaWiki 的创建者 Magnus Manske 制作的工具:在这种情况下,它是 GLAMourous。具有 3 级递归的示例(查找 186k 图像,114k 用法):https ://tools.wmflabs.org/glamtools/glamorous.php?doit=1&category=Automobiles&use_globalusage=1&depth=3

结果也可以以 XML 格式下载,因此它是机器可读的。

于 2015-04-27T19:10:07.173 回答