使用Wikipedia API查找文章的主要类别

时间:2014-08-29 18:03:58

标签: php mediawiki wikipedia 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​​?

1 个答案:

答案 0 :(得分:0)

首先,没有"维基百科API"。有一个MediaWiki(Web)API。了解这一点有助于您找到有关现有工具的信息。 https://www.mediawiki.org/wiki/API:Main_Page

它告诉您没有API可以为您执行所有类别递归。为什么?因为1)效率非常低,2)递归可能会去任何地方或永远不会结束。

然而,Magnus Manske现在有一个解决方案:https://tools.wmflabs.org/catscan2/reverse_tree.php?doit=1&language=en&project=wikipedia&title=Dog&namespace=0"最大深度:61个等级沿途总类别:7988" 使用该定义," root" [[狗]]的类别,即最远的父亲类别,是"按国家划分的行业"。可能不是你的预期!但是,从英文维基百科的角度来看,任何文章的根类别总是相同的,[[类别:内容]]。