2016-05-30 54 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