我想使用MediaWiki API获取JSON格式的类别树。
例如,here is a category named "Story" in the Game of thrones wiki。
此类别有几个子类别,例如Characters,最后还有子类别,例如Major Characters。
是否可以拥有维基所有类别的类别树?
所有类别are listed here,但是:
答案 0 :(得分:0)
好吧,我有解决方案(通过使用多个查询)。
从手册页(http://your_wiki.fr/api.php):
list=allcategories
返回维基的所有类别; prop=categoryinfo
返回有关类别的信息,包括子类别的数量。我们首先需要选择树开始的“根”类别。我的情况是,它是“故事”。
然后,通过使用生成器,我们可以为给定的类别:
这里有权力的游戏wikia:
好吧,现在我们只需要编写一个函数来返回一个类别的子类别,递归地直到没有子类别:
上面查询的第一个结果是:
<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>
所以子序列&gt; 0?好吧,让我们问一下Characters子类别:
等