Wikipedia API 批处理 pageImages 只返回第一张图片

Wikipedia API Batch pageImages returning only first image

我正在尝试对维基百科的查询 API 进行批量调用以检索 pageImages(主图像)和 extract。出于某种原因,我的 API 只为第一个结果调用 returns 图像,而不是第二个结果:

https://en.wikipedia.org/w/api.php?format=json&action=query&prop=pageimages|extracts&exintro=&explaintext=&titles=Stack%20Overflow%7CMicrosoft&exlimit=2&pithumbsize=500&pilimit=2

这也发生在数据提取中,但通过添加 exlimit 参数解决了。据我了解,对于 pageimages,等效参数是 pilimit。不幸的是,这并不能解决问题。

如何将上面的 API 调用更改为 return 维基百科结果的批量集合,每个结果都有一个 extractpageImages

首先,pageimages 可能存在错误,因此您可以改用 images。第二,第二个标题的图像只有在第一个标题的所有图像都显示后才会显示。等等,所以你需要使用 imlimit=max:

https://en.wikipedia.org/w/api.php?action=query&prop=images|extracts&exintro=&explaintext=&titles=Stack%20Overflow|Microsoft&exlimit=2&imlimit=max

如果您还想获得非免费图像 (example, sandbox),请添加 pilicense=any。由于对如何使用它们的各种限制,这些往往不是那么好(例如较低的分辨率)。