Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有公共域筛选器的Wikimedia API图像搜索_Api_Mediawiki_Wikipedia Api_Wikimedia Commons - Fatal编程技术网

带有公共域筛选器的Wikimedia API图像搜索

带有公共域筛选器的Wikimedia API图像搜索,api,mediawiki,wikipedia-api,wikimedia-commons,Api,Mediawiki,Wikipedia Api,Wikimedia Commons,我想查询Wikimedia API以查找包含关键字的所有图像,并仅过滤公共域的图像。因此,没有额外的CC-SA许可证 现在,我使用以下查询来提取图像: 但是,这是目前返回的所有图像,无论其许可证。也许我需要修改名称空间,但我不知道该在哪里查找 谢谢,您当前的api查询有两个截然不同的功能: 从页面中获取前10个图像-在页面结果中,您可以为该结果集指定要获取的其他属性 在名称空间6中搜索单词roses 不幸的是,不能将搜索限制为仅在某些类别中进行,只能将其限制为单个命名空间。因此,您需要获取

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

现在,我使用以下查询来提取图像:

但是,这是目前返回的所有图像,无论其许可证。也许我需要修改名称空间,但我不知道该在哪里查找


谢谢,您当前的api查询有两个截然不同的功能:

  • 从页面中获取前10个图像-在
    页面
    结果中,您可以为该结果集指定要获取的其他属性
  • 在名称空间6中搜索单词roses
不幸的是,不能将搜索限制为仅在某些类别中进行,只能将其限制为单个命名空间。因此,您需要获取所有搜索结果的类别,并自己对其进行筛选,以便在中(及其所有内容)查找图像。API查询如下所示

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文本禁用”,信息:“文本搜索被禁用”} /代码>如果您发现公共领域图像是有用的,请考虑返回到下院,例如通过改进可供每个人使用的机器可读元数据。