我有一个项目,我收集属于特定类别的所有维基百科文章,从维基百科中取出转储,并将其放入我们的数据库中。
所以我应该解析维基百科转储文件来完成这些工作。我们有一个高效的解析器来完成这项工作吗?我是一名Python 开发人员。所以我更喜欢Python中的任何解析器。如果没有建议,我会尝试用 python 编写它的一个端口并将其贡献给网络,以便其他人使用它或至少尝试一下。
所以我想要的只是一个 python 解析器来解析 Wikipedia 转储文件。我开始编写一个手动解析器,它解析每个节点并完成工作。
另一个好的模块是 here 的 mwlib - 安装所有依赖项很痛苦(至少在 Windows 上),但它运行良好。
我不知道许可,但是this是用python实现的,并且包含源代码。
我强烈推荐mwxml。它是由维基媒体基金会的研究科学家Aaron Halfaker编写的用于解析维基媒体转储的实用程序。可以安装
pip install mwxml
用法非常直观,如文档中的示例所示:
>>> import mwxml
>>> dump = mwxml.Dump.from_file(open("dump.xml"))
>>> print(dump.site_info.name, dump.site_info.dbname)
Wikipedia enwiki
>>> for page in dump:
... for revision in page:
... print(revision.id)
...
1
2
3
它是维基媒体基金会及其社区推出的一组更大的数据分析实用程序的一部分。