mediawiki api。如何从响应中选择页面

时间:2013-10-10 14:44:58

标签: mediawiki mediawiki-api

当我进行api查询时,有时我会列出几页。例如 http://en.wikipedia.org/wiki/Ask提供了很多页面,我需要网站“Ask.com,一个网络搜索引擎,以前的Ask Jeeves” 我可以只查询某些类别(“网站”)吗? 我如何检查每个页面的类别作为响应? 感谢

3 个答案:

答案 0 :(得分:1)

没有琐碎的方法来做你所要求的。你可以这样做:

  1. 获取消除歧义页面列表的页面列表。您可以通过列出该页面上的链接(action=query&prop=links)来完成此操作。
  2. 获取上一步中所有页面的类别,并使用它来确定哪一个是您正在寻找的页面。这并不是那么简单,因为Ask.com不是直接在Category:Websites中,而是在其子类别中。

答案 1 :(得分:1)

  

我有几页的列表,例如http://en.wikipedia.org/wiki/Ask

问题是你没有得到一个页面列表,你只是得到disambiguation pages category中的普通页面。要获取列表,您需要获取links in that page

  

我可以仅针对某些类别(“网站”)进行查询吗?

不,mediawiki不支持。

  

如何检查每个页面的类别?

links属性用作title list generator并获取响应中的categories of each page。在您的情况下,这将是http://en.wikipedia.org/w/api.php?action=query&titles=Ask&generator=links&prop=categories(不要忘记查询continue

答案 2 :(得分:0)

如果您对“问”的“全文搜索”没问题, 你可以这样做:

http://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrsearch=ask%20incategory:%22Online%20companies%22&prop=info

如您所见,“搜索”文本是[ask incategory:“Online companies”]

同样的解决方案也可以在以下方面看到: Wikipedia API: how to search for a term in a specific category