按类别选项导出维基百科?

时间:2012-01-30 11:08:16

标签: mediawiki wikipedia

我知道我可以完全下载维基百科。但我想知道是否有任何方法可以按类别下载?他们有Special Export页面,但写一个类别(例如文化)会添加子页面和另一组类别,因此尝试获取文化中的所有页面将“永远”,因为当您提交另一个子类别时文化的另一个出现。你们知道按类别出口的其他方法吗? (以简单的方式)

2 个答案:

答案 0 :(得分:4)

使用MediaWiki API,您可以使用list=categorymembers generator作为prop=revisions查询来获取某个类别中所有网页的wiki文本,如下所示:

  

http://en.wikipedia.org/w/api.php?action=query&generator=categorymembers&gcmtitle=Category:Culture&gcmnamespace=0&prop=revisions&rvprop=content

此示例链接提供维基百科上Category:Culture中前10篇文章的内容。您可以添加gcmlimit=max参数以获取更多页面,但对于大型类别,您需要正确处理query continuations(或使用为您处理它们的MediaWiki API client。)

(但是,此查询不会显示“类别:文化”的子类别中的页面。如果您也需要这些页面,则可以获取子类别的页面列表在使用简单categorymembers查询而没有cmnamespace的类别中,并通过结果递归来收集要导出的文章标题列表。如果这样做,请注意不要陷入任何类别循环,并且最好在导出页面之前对结果进行健全性检查 - 从完整的子类别遍历中获取方式更多页面非常容易。)

答案 1 :(得分:3)

我认为没有其他简单的方法可以做到这一点。

我认为您最好的选择是下载所有文章的转储文件(pages-articles,目前为英文维基百科7.5 GB)并按类别过滤,可能使用类别成员转储(categorylinks ,1 GB)。

另一种选择是做类似于使用Special执行的操作:手动导出,但使用the API自动执行。