2016-05-30 52 views
0

我想使用MediaWiki API获取JSON格式的类别树。例如,here is a category named "Story" in the Game of thrones wikiMediaWiki API:获取类别树

此类别有几个子类别,如Characters,这最后也有子类别,如Major Characters

是否有可能拥有wiki的所有类别的类别树?

中的所有分类are listed here,但:

  • 这似乎由人被写入(待定);
  • 这是一个html页面,我想要一个JSON结果,以简化解析和带宽。

回答

0

那么,我有解决方案(通过使用几个查询)。

从man页面(http://your_wiki.fr/api.php):

  • list=allcategories回报wiki的所有类别;
  • prop=categoryinfo返回有关类别的信息,包括子类别的数量。

我们首先需要选择树开始的'根'类别。我的情况是“故事”。

然后,利用一台发电机,我们可以有,对于一个给定的类别:

随着游戏的宝座维基

这里类别:

以上查询的第一个结果是:

<page pageid="2545" ns="14" title="Category:Characters" touched="2016-06-02T14:20:11Z" lastrevid="92826" counter="" length="67"> 
    <categoryinfo size="953" pages="935" files="2" subcats="16" /> 
</page> 

所以subcats> 0?好了,让问字符子类:

http://gameofthrones.wikia.com/api.php?action=query&generator=categorymembers&gcmtitle=Category:Characters&gcmtype=subcat&gcmlimit=500&prop=categoryinfo|info