import wikipedia
site = wikipedia.getSite('en', 'wikipedia')
page = wikipedia.Page(site, 'Test')
print page.get() # '''Test''', '''TEST''' or '''Tester''' may refer to:
#==Science and technology==
#* [[Concept inventory]] - an assessment to reveal student thinking on a topic.
# ...
text = re.sub('\[\[(?:[^\]\|]*)\|([^\]\|]*)\]\]', '\\1', 'Lorem ipsum [[dolor|DOLOR]] sit amet, consectetur adipiscing elit.')
print text #Lorem ipsum DOLOR sit amet, consectetur adipiscing elit.
有一个名为mwparserfromhell on Github的模块,根据您的需要,它可以让您非常接近您想要的东西。它有一个名为strip_code()的方法,可以去除很多标记。在
比较代码段:
^{pr2}$如果您的意思是“我只想获取wikitext”,那么看看
wikipedia.Page
类和get
方法。在这样您就可以从文章中获得完整的原始wikitext。在
如果您想去掉wiki语法,比如将
[[Concept inventory]]
转换为概念清单等等,那么这将更加痛苦。在这个问题的主要原因是mediawikiki语法没有定义语法。这使得它很难解析和剥离。我目前还不知道有什么软件可以让你准确地做到这一点。当然还有MediaWiki解析器类,但是它是PHP,有点难以理解,而且它的用途也非常不同。在
但如果您只想去掉链接或非常简单的wiki构造,请使用regex:
^{pr2}$然后对于管道连接:
等等。在
但例如,没有可靠的简单方法从页面中剥离嵌套模板。在评论中有链接的图片也是如此。这非常困难,需要递归地删除最内部的链接,并用标记替换它,然后重新开始。看看中的
templateWithParams
函数维基百科.py如果你想的话,但这并不漂亮。在相关问题 更多 >
编程相关推荐