我想抓取使用 MediaWiki 软件的整个 wiki。页面数量很少,但修订版本很多,我最好也抓取修订版本。
与 Wikipedia 不同,Wiki 不提供数据库转储。是否有任何现有的软件/脚本专门用于抓取 MediaWiki 网站?
答案1
如果 wiki 维护者没有关闭此功能,您可以通过以下方式导出页面及其历史记录特殊:出口。这将为您提供类似于 Wikipedia 数据库转储的 XML 转储,然后您可以将其导入到另一个 wiki。
以 XML 格式从 MediaWiki 获取页面历史记录的另一种方法是使用prop=revisions API 查询。但是,API 结果格式与 Special:Export 生成的格式略有不同,因此您可能需要对输出进行一些处理,然后才能将其提供给标准导入脚本。
答案2
查看 WikiTeam 提供的工具。http://archiveteam.org/index.php?title=WikiTeam
我个人使用 wikiteam 的 dumpgenerator.py,可从此处获取:https://github.com/WikiTeam/wikiteam
它依赖于 python 2。您可以使用 git 获取该软件,或者从 github 下载 zip:
git clone https://github.com/WikiTeam/wikiteam.git
基本用法是:
python dumpgenerator.py http://wiki.domain.org --xml --images