如何从MediaWiki提取纯文本?

时间:2020-07-25 08:10:14

标签: python mediawiki

我已经从https://awoiaf.westeros.org/index.php/Special:Export中导出了一些类别。 它们采用XML格式。我想要“内容提要”部分中的纯文本。您可以下载整个here(压缩后为54KB)。

典型的摘要部分如下:

==提要== [[Catelyn Tully | Catelyn]]聆听大厅里的音乐家正在演奏的鼓的连续敲打声。她 在比赛期间坐在[[Ryman Frey]]和[[Roose Bolton]]之间 婚礼盛宴。她对自己说,婚礼多么无聊, 看着[[Robb Stark | Robb]]与几个Frey女仆共舞 和[[Edmure Tully | Edmure]]宠爱他即将成为妻子,[[Roslin Frey | Roslin]]。当Catelyn得知[[Olyvar Frey | Olyvar],[[Perwyn Frey | Perwyn]]和[[Alesander Frey]]都是 不参加婚礼。她注意到[[Merrett Frey]]尝试 在桌子底下喝[[Greatjon Umber | Greatjon]],最后 [[Walder Frey]阁下要求铺垫。 Robb不参加 当大君将哭泣的罗斯林带到病房时。

如何从“摘要”的所有部分中提取纯文本?

1 个答案:

答案 0 :(得分:1)

首先,您需要将其解析为XML。我建议使用lxml和xpath。

from lxml import etree

tree = etree.parse('file.xml')
expression = '/m:mediawiki/m:page/m:revision/m:text/text()'
namespaces = {"m": "http://www.mediawiki.org/xml/export-0.10/"}
texts = tree.xpath(expression, namespaces=namespaces)

一旦您获得了所有文本部分,请使用正则表达式逐一解析它们。或编写自己的解析器。