6

我想查询 Wikimedia API 以查找所有包含关键字的图像并仅过滤公共领域的图像。因此无需额外的 CC-SA 许可证。

目前我正在使用以下查询来提取图像:

http://en.wikipedia.org/w/api.php?action=query&list=search&format=json&srsearch=roses&srnamespace=6&srinfo=totalhits%7Csuggestion&srprop=size%7Cwordcount%7Ctimestamp%7Cscore%7Csnippet%7Ctitlesnippet%7Credirecttitle%7Credirectsnippet%7Csectiontitle% 7Csectionsnippet%7Chasrelated&srredirects=&srlimit=10&generator=images&titles=维基百科%3APublic_domain&gimlimit=10

但这目前正在返回所有图像,无论它们的许可如何。也许我需要修改命名空间,但我不知道去哪里找。

谢谢

4

1 回答 1

4

嗯,您当前的 api 查询做了两件非常不同的事情:

  • 从页面Wikipedia:Public Domain获取前 10 个图像-pages结果,您可以指定其他属性以获取该结果集
  • 在命名空间 6 中搜索单词roses

不幸的是,您不能将搜索模块限制为仅在某些类别中搜索,您只能将其限制为单个命名空间。因此,您需要获取所有搜索结果的类别并自己过滤它们以获取Category:Public Domain(及其所有子类别)中的图像。API 查询看起来像

api.php?action=query&prop=imageinfo|categories&generator=search&gsrsearch=roses&gsrnamespace=6&format=json

不要忘记继续查询,如果您想要 10 张符合您的类别标准的图像,您可能需要查询(很多)更多。

于 2012-10-09T17:21:13.640 回答