2014-08-29 115 views
3

我有一篇文章,我想找到每篇文章的主要類別。使用維基百科API查找文章的主要類別

維基百科列出了它的主要類別 - http://en.wikipedia.org/wiki/Portal:Contents/Categories

我能夠用找到每篇文章的子類別:

http://en.wikipedia.org/w/api.php?action=query&prop=categories&titles=%s&format=xml

我也是能夠檢查子類別是否是一個類別內:

http://en.wikipedia.org/w/api.php?action=query&titles=Dog&prop=categories&clcategories=Domesticated animals&format=xml

這將告訴我「馴養的動物」是否是狗的一個子類,但這不是我想要的。我希望能夠檢查哪個主類別的「家養動物」處於這種狀態。這是否可以使用API​​?

+1

您所指的頁面是手動策劃的,而不是技術上的「主要類別」。這是更接近:https://en.wikipedia.org/wiki/Category:Main_topic_classifications,但從技術上說,它不是頂部的類別(它被放置在類別內容)。 – Ainali 2014-08-30 06:51:03

+1

但是,如果你想找出馴養動物的分類,請使用:http://en.wikipedia.org/w/api.php?action=query&prop=categories&format=xml&cllimit=10&titles=Category%3ADomesticated%20animals As你看它屬於三類。你可以重複那個API調用,並且每個人都「爬上」類別分類。 – Ainali 2014-08-30 06:59:58

+0

@Ainali非常感謝!我會嘗試這種方法。 – user3746644 2014-08-31 13:10:44

回答

0

首先,沒有「維基百科API」這樣的東西。有一個MediaWiki(網絡)API。知道這將幫助您找到有關現有工具的信息。 https://www.mediawiki.org/wiki/API:Main_Page

它告訴你沒有API會爲你做所有的類遞歸。爲什麼?因爲1)效率非常低,2)遞歸可能會在任何地方或永遠不會結束。

然而現在有一種解決方案,通過馬格努斯·曼斯克:https://tools.wmflabs.org/catscan2/reverse_tree.php?doit=1&language=en&project=wikipedia&title=Dog&namespace=0「最大深度:61級水平的總的類別沿途:7988」 使用該定義,「根」類別[[狗]],即最遠的父親類別,是「按國家分行業」。可能不是你所期望的!但是,從英文維基百科的角度來看,任何文章的根目錄總是相同的[[Category:Contents]]。

相關問題