我有一个项目,我收集属于特定类别的所有维基百科文章,从维基百科中提取转储,并将其放入我们的数据库。
所以我应该解析维基百科转储文件来完成这些工作。我们是否有一个高效的解析器来完成这项工作?我是一名 Python 开发人员。所以我更喜欢python中的任何解析器。如果没有建议,我会尝试在 python 中编写它的一个端口并将其贡献给网络,以便其他人使用它或至少尝试一下。
所以我想要的只是一个 python 解析器来解析维基百科转储文件。我开始编写一个手动解析器来解析每个节点并完成工作。
另一个不错的模块是mwlib从这里安装 - 安装所有依赖项(至少在 Windows 上)很痛苦,但它运行良好。
我不知道许可,但这是在 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
它是维基媒体基金会及其社区推出的一组更大的数据分析实用程序的一部分。