我一直在寻找一种基于搜索字符串查询维基百科api的方法,以查找具有以下属性的文章列表:
我还必须使用jsonp进行查询。
我尝试过使用list = search参数
但它似乎忽略了prop = images,我还尝试使用prop = imageinfo和prop = pageimages进行变换。但他们都给我的结果与使用list = search。
相同我也尝试过action = opensearch
http://en.wikipedia.org/w/api.php?action=opensearch&search=test&limit=10&format=xml
当我设置format = xml时,这正是我想要的,但是当使用format = json时返回一个简单的页面标题数组,因此因为jsonp要求而失败。
还有另一种做法吗?我真的想在一个请求中解决这个问题,而不是先发出第一个搜索请求,然后使用titles = x | y | z
进行第二次图像请求答案 0 :(得分:19)
正如Bergi建议的那样,使用发电机是这里的方法。特别是我会做什么:
list=search
作为生成器,以获取文章列表prop=pageimages
获取每篇文章的代表性图片prop=extracts
获取每篇文章的说明整个查询可能如下所示:
答案 1 :(得分:1)
我尝试过使用list = search参数,但似乎忽略了prop = images
如果要检索任何properties,您需要指定要获取这些内容的页面列表;例如使用titles=
,pageids=
或revids=
参数。您没有发送任何内容,因此您未获得prop=images
的结果。
如果您确实使用了api.php?action=query&list=search&srsearch=test&prop=images&titles=test
,那么您将获得test
和 Test
页面图片的搜索结果。
您也可以使用list
查询为您的属性查询生成的集合,使用list
模块作为generator。查询看起来像
api.php?action=query&generator=search&gsrsearch=test&gsrnamespace=0&gsrprop=snippet&prop=images
。不幸的是,它不会产生列表包含的属性,只会使用pageids进行基本属性查询。
使用两个查询可能是要走的路。顺便说一句,我建议使用pageimages
property,它可能会给你最好的结果。