背景
假设我想从 MediaWiki 中提取所有页面/修订的解析内容文本。让我们考虑一下庞大的英文维基百科。
我可以通过下载所需的数据、设置我自己的 MediaWiki 安装并运行一个循环来调用类似的东西来做到这一点:
http://localhost/mediawiki/api.php?uselang=en&format=xml&action=query&prop=extracts&exintro=&explaintext=&titles=
这使用了 TextExtracts ( https://github.com/wikimedia/mediawiki-extensions-TextExtracts ) 扩展,它在内部实际上做了类似的事情:
http://localhost/mediawiki/api.php?uselang=en&format=xml&action=parse&prop=text&title=
问题
现在,我不想将 MediaWiki 安装与 MySQL 数据库等一起使用。但我想使用 MediaWiki XML 数据转储(巨大的英语维基百科 XML 转储 - enwiki-latest-pages-articles.xml.bz2)来完成我所描述的操作。关于如何解决这个问题的任何想法?
看起来所有调用的解析逻辑WikiPage->getContent
和很多都在 MediaWiki PHP 类中——它们耦合太紧密了,我无法将它们取出(除非我想花数周时间在上面)并编写我自己的脚本来处理转储. 是否有任何脚本可以让我这样做?我的首选语言是 Java,但我愿意选择。