带有公共域筛选器的Wikimedia API图像搜索
我想查询Wikimedia API以查找包含关键字的所有图像,并仅过滤公共域的图像。因此,没有额外的CC-SA许可证 现在,我使用以下查询来提取图像: 但是,这是目前返回的所有图像,无论其许可证。也许我需要修改名称空间,但我不知道该在哪里查找带有公共域筛选器的Wikimedia API图像搜索,api,mediawiki,wikipedia-api,wikimedia-commons,Api,Mediawiki,Wikipedia Api,Wikimedia Commons,我想查询Wikimedia API以查找包含关键字的所有图像,并仅过滤公共域的图像。因此,没有额外的CC-SA许可证 现在,我使用以下查询来提取图像: 但是,这是目前返回的所有图像,无论其许可证。也许我需要修改名称空间,但我不知道该在哪里查找 谢谢,您当前的api查询有两个截然不同的功能: 从页面中获取前10个图像-在页面结果中,您可以为该结果集指定要获取的其他属性 在名称空间6中搜索单词roses 不幸的是,不能将搜索限制为仅在某些类别中进行,只能将其限制为单个命名空间。因此,您需要获取
谢谢,您当前的api查询有两个截然不同的功能:
- 从页面中获取前10个图像-在
结果中,您可以为该结果集指定要获取的其他属性页面
- 在名称空间6中搜索单词roses
api.php?action=query&prop=
=search&gsrsearch=rose&gsrnamespace=6&format=json
别忘了,如果你想要10张符合你的分类标准的图片,你可能需要查询更多的图片。我认为在这里添加clcategories
可能会有意义,可以将分类仅限于category:Public Domain及其子分类。这样做很可能意味着更少的query continue
。不,不幸的是,clcategories
不起作用,因为它不包含子类别-并且您无法在其中传递所有1200个子类别,因此您不能限制搜索模块仅在某些类别中搜索-当然可以,只需将inccategory:
添加到搜索查询中即可。好的,您可以这样做(虽然它实际上不是一个[URL]参数),但这仍然不包括子类别。您必须执行类似于search\u string
+incategory:“Public Domain”或incategory:CC zero或…
,这可能超出了搜索字符串长度限制。如果在srsearch
参数中附加+incategory:“Public Domain”或任何内容,它将返回以下错误:{servedby:“srv292”,错误:{代码:“SrScript文本禁用”,信息:“文本搜索被禁用”} /代码>如果您发现公共领域图像是有用的,请考虑返回到下院,例如通过改进可供每个人使用的机器可读元数据。