Python 如何从mediawiki提取纯文本?

Python 如何从mediawiki提取纯文本?,python,mediawiki,Python,Mediawiki,我已经从导出了一些类别。它们是XML格式的。我想要“大纲”部分的纯文本。你可以下载全部内容(54KB压缩) 典型的概要部分如下所示: ==简介==[[Catelyn Tully | Catelyn]]聆听音乐人在大厅里演奏的鼓声。她 在比赛中坐在[[Ryman Frey]]和[[Roose Bolton]]之间 婚宴。她自言自语地说,婚礼是多么的不快乐 看着[[Robb Stark | Robb]]与几位弗雷女仆跳舞 而且[[Edmure Tully | Edmure]]很爱他即将成为的妻子[[

我已经从导出了一些类别。它们是XML格式的。我想要“大纲”部分的纯文本。你可以下载全部内容(54KB压缩)

典型的概要部分如下所示:

==简介==[[Catelyn Tully | Catelyn]]聆听音乐人在大厅里演奏的鼓声。她 在比赛中坐在[[Ryman Frey]]和[[Roose Bolton]]之间 婚宴。她自言自语地说,婚礼是多么的不快乐 看着[[Robb Stark | Robb]]与几位弗雷女仆跳舞 而且[[Edmure Tully | Edmure]]很爱他即将成为的妻子[[Roslin] 弗雷|罗斯林]]。当Catelyn得知这一点时,她变得更加谨慎 弗雷|奥利瓦尔]]、[[Perwyn-Frey | Perwyn]]和[[Alesander-Frey]]都是 没有参加婚礼。她注意到[[Merrett Frey]]在努力 喝下桌下的[[Greatjon Umber | Greatjon]],最后 领主[[Walder Frey]]要床上用品。罗布没有参加 当大乔恩抱着一个哭泣的罗斯林来到卧室时


如何从所有概要部分提取纯文本?

首先,您需要将其解析为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)


获得所有文本部分后,使用正则表达式逐个解析它们。或者编写自己的解析器。

这不是XML。。。看起来像RST,它实际上是纯文本,因为假设您使用了XHTML,所以抛出了一些链接,然后@OneCricketeer我希望从概要部分看到纯文本(例如,[[Catelyn Tully | Catelyn]]变成Catelyn Tully)。太多,无法手动复制和编辑。这不是的副本。我认为这个问题有点懒惰(没有显示出真正的研究成果),但问题中的标记不是重构文本。它是MediaWiki标记。链接文件(“整个内容”)实际上是一个XML文件。不包含任何好的答案。如果输入确实是XML,请查找具有类似答案的现有问题,并以重复方式关闭。在50k rep上,您应该不再需要只为代表回答问题。但是,另外,inpqt显然不是XML。@tripleee您确定我链接的完整文件不是XML吗?