我知道我可以完全下载维基百科。但我想知道是否有任何方法可以按类别下载?他们有Special Export页面,但写一个类别(例如文化)会添加子页面和另一组类别,因此尝试获取文化中的所有页面将“永远”,因为当您提交另一个子类别时文化的另一个出现。你们知道按类别出口的其他方法吗? (以简单的方式)
答案 0 :(得分:4)
使用MediaWiki API,您可以使用list=categorymembers
generator作为prop=revisions
查询来获取某个类别中所有网页的wiki文本,如下所示:
此示例链接提供维基百科上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自动执行。