我们希望基于Wikipedia Commons图像数据库构建图像搜索。我已经尝试了不同的请求格式,但似乎没有适合100%我们需求的解决方案。
我们想要实现的目标:
我试过了:
https://commons.wikimedia.org/w/api.php?action=query&list=search&srsearch=%22Einstein%22&srnamespace=6
返回总计结果(1842)
"query": {
"searchinfo": {
"totalhits": 1842
},
结果如:
{
"ns": 6,
"title": "File:Albert Einstein Head.jpg",
"snippet": "DescriptionAlbert <span class=\"searchmatch\">Einstein</span> Head.jpg English: Albert <span class=\"searchmatch\">Einstein</span> Fran\u00e7ais\u00a0: Portrait d'Albert <span class=\"searchmatch\">Einstein</span> Date Copyrighted 1947, copyright not renewed. <span class=\"searchmatch\">Einstein</span>'s estate",
"size": 968,
"wordcount": 0,
"timestamp": "2016-01-01T01:57:15Z"
}
但是这个回复缺少可下载的URL。例如,“File:Albert Einstein Head.jpg”中的一个是https://upload.wikimedia.org/wikipedia/commons/d/d3/Albert_Einstein_Head.jpg
我需要设置另一个请求来获取正确的网址:
https://commons.wikimedia.org/w/api.php?action=query&titles=File:Albert Einstein Head.jpg|File:Einstein hair advice.jpg|File:Einstein - potpis.jpg&prop=imageinfo&iiprop=url
有没有办法在单个请求中搜索包含其标题,下载URL和总结果(总点数)的维基百科图像?
答案 0 :(得分:1)
是的,您可以将serarch查询用作所谓的generator,然后使用prop=imageinfo
查询该生成器的结果以获取图片网址。在你的情况下,它看起来像这样:
https://commons.wikimedia.org/w/api.php?action=query&generator=search&gsrsearch=Einstein&gsrprop=snippet&prop=imageinfo&iiprop=url&rawcontinue&gsrnamespace=6
generator=search
告诉API将此模块用作生成器。然后,此模块的参数以gsr
为前缀,如gsrsearch=Einstein
,gsrprop=snippet
等。最后,prop=imageinfo
的工作方式与常规API查询相同,但每个参数都会重复结果发电机返回。
相关:强>