使用公共域过滤器的维基媒体API图像搜索

时间:2012-10-09 15:37:08

标签: api mediawiki wikipedia-api wikimedia-commons

我想查询维基媒体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=Wikipedia%3APublic_domain&gimlimit=10

但是无论他们的许可如何,这都是非常有效的。也许我需要修改名称空间,但我不知道在哪里看。

由于

1 个答案:

答案 0 :(得分:4)

嗯,你当前的api查询做了两件截然不同的事情:

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

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

  

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

不要忘记continue the query,如果你想要10个符合你的类别标准的图片,你可能需要查询(很多)。