如何获取维基百科类别及其子类别下的所有文章页面?

时间:2011-04-24 16:28:15

标签: sql web-services nlp wikipedia wikipedia-api

我希望获得一个类别及其子类别下的所有文章名称。

我知道的选项:

  1. 使用Wikipedia API。它有这样的选择??
  2. d / l转储。哪种格式对我的使用更好?
  3. 还可以选择在维基百科中搜索类似incategory:"music"的内容,但我没有看到以XML格式查看的选项。
  4. 请分享您的想法

3 个答案:

答案 0 :(得分:10)

以下资源将帮助您下载该类别及其所有子类别中的所有页面:

http://en.wikipedia.org/wiki/Wikipedia:CatScan

此处还有一个API:

https://www.mediawiki.org/wiki/API:Categorymembers

答案 1 :(得分:9)

您可以通过以下两种API方法执行此操作:

适用于此类别的文章页面

YOUR_URL/api.php?action=query&format=json&list=categorymembers&cmtitle=Category:Music

获取子类别:

YOUR_URL/api.php?action=query&format=json&list=categorymembers&cmtype=subcat&cmtitle=Category:Music

您可以在Mediawiki API

上获得更多信息

答案 2 :(得分:4)

请注意,维基百科的分类系统不是树,甚至不是非循环图。很可能通过不断跟随子类别链接,您最终将回到最初的位置。

如果要进行许多此类查询,最好通过下载数据库转储来实现。如果这种情况很少发生,并且只处理小类别,那么您可能会对list=categorymembers重复查询。

incategory:"music"似乎没有进行子类搜索。