2014-08-29 113 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]]。

相关问题