26

我想获取一个类别及其子类别下的所有文章名称。

我知道的选项:

  1. 使用维基百科 API。有这样的选择吗??
  2. d/l 转储。哪种格式更适合我的使用?
  3. 还有一个在 Wikipedia 中搜索类似的选项incategory:"music",但我没有看到在 XML 中查看的选项。

请分享你的想法

4

3 回答 3

16

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

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

这里还有一个可用的 API:

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

于 2011-06-13T00:22:43.243 回答
11

您可以通过以下两种 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的更多信息

于 2015-05-25T11:22:50.683 回答
6

请注意,维基百科的分类系统不是树,甚至不是无环图。通过不断关注子类别链接,您很可能最终会回到您开始的地方。

如果您要进行许多此类查询,最好下载数据库转储。如果这将是一件不常见的事情并且只会处理小类别,那么您可能会通过对list=categorymembers.

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

于 2011-04-26T01:36:56.910 回答