我想查询维基媒体API以查找包含关键字的所有图片,并仅筛选出公共领域的图片。因此,没有额外的CC-SA许可证。
目前,我正在使用以下查询提取图像: 但是目前返回所有图像,而不考虑它们的许可证。也许我需要修改命名空间,但我不知道该去哪里查找。
谢谢。
目前,我正在使用以下查询提取图像: 但是目前返回所有图像,而不考虑它们的许可证。也许我需要修改命名空间,但我不知道该去哪里查找。
谢谢。
嗯,你当前的 API 查询有两个非常不同的功能:
pages
结果,您可以指定要获取的其他属性不幸的是,您无法将搜索模块限制为仅搜索某些类别,您只能将其限制为单个命名空间。因此,您需要获取所有搜索结果的类别,并自行过滤出Category:Public Domain(以及其所有子类别)中的图像。API 查询将如下所示:
api.php?action=query&prop=
imageinfo
|
categories
&
generator
=search&gsrsearch=roses&gsrnamespace=6&format=json
不要忘记继续查询,如果您想要 10 张符合类别标准的图像,可能需要查询(更多)。
clcategories
可能是有意义的,以限制类别仅限于 Category:Public Domain 及其子类别。这样做很可能意味着更少的 query-continue
。 - svickincategory:<category name>
添加到搜索查询中即可。 - Tgrsearch_string
+* incategory:"Public Domain" OR incategory:CC-zero OR …
这样的事情,而且很可能超过搜索字符串长度限制。 - Bergisrsearch
参数后面添加+incategory:“Public Domain”或其他任何内容,它会返回以下错误:
{ servedby: "srv292", error: { code: "srsearch-text-disabled", info: "text search is disabled" } }
- CiprianIonescu