使用维基百科API查找文章的主要类别


Find main category for article using Wikipedia 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吗?

首先,没有"维基百科API"这样的东西。有一个MediaWiki(web)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=狗&namespace=0"最大深度:61个级别沿途总类别:7988"根据这个定义,[[Dog]]的"根"类别,即最远的父亲类别,是"按国家划分的行业"。可能不是你所期望的!然而,从英语维基百科的角度来看,任何文章的根目录都是相同的,[[category:Contents]]。