Python 解析维基百科转储
例如,使用此Wikipedia转储: 是否有一个现有的Python库,我可以使用它创建一个带有主题和值映射的数组 例如:Python 解析维基百科转储,python,mediawiki,wikipedia-api,mediawiki-api,wikimedia-dumps,Python,Mediawiki,Wikipedia Api,Mediawiki Api,Wikimedia Dumps,例如,使用此Wikipedia转储: 是否有一个现有的Python库,我可以使用它创建一个带有主题和值映射的数组 例如: {height_ft,6},{nationality, American} 这里有一些关于Python和XML库的信息 如果您想知道是否有一个现有的库专门用于解析Wiki(pedia)XML并符合您的需求,这是值得怀疑的。但是,您可以使用现有库中的一个来遍历DOM并提取所需的数据 另一种选择是编写一个XSLT样式表,该样式表执行类似的操作,并使用lxml调用它。这还允许您
{height_ft,6},{nationality, American}
这里有一些关于Python和XML库的信息 如果您想知道是否有一个现有的库专门用于解析Wiki(pedia)XML并符合您的需求,这是值得怀疑的。但是,您可以使用现有库中的一个来遍历DOM并提取所需的数据 另一种选择是编写一个XSLT样式表,该样式表执行类似的操作,并使用lxml调用它。这还允许您从XSLT内部调用Python函数,以便充分利用这两个方面。我想说的是,看看如何使用HTML而不是API来获取Wikipedia页面
我将尝试发布一个示例。看起来您确实希望能够解析MediaWiki标记。有一个专门为此设计的python库,名为。您可以使用python的内置XML包从API的响应中提取页面内容,然后将该内容传递到mwlib的解析器中,以生成一个对象表示,您可以在代码中浏览和分析该对象表示,以提取所需的信息。mwlib是BSD许可的。刚刚偶然发现PyPi上的一个库,该库声称提供 从wikipedia转储操作和提取数据的工具
我还没有使用它,所以您可以自己尝试……您可能正在寻找操纵wikipedia API的方法。我描述了如何使用pywikibot和in的组合来实现这一点(还没有足够的声誉来标记为副本) [1]中的
:导入mwparserfromhell
在[2]中:导入pywikibot
在[3]中:enwp=pywikibot.Site('en','wikipedia')
在[4]中:page=pywikibot.page(enwp,“清醒生活”)
在[5]中:wikitext=page.get()
在[6]中:wikicode=mwparserfromhell.parse(wikitext)
在[7]中:templates=wikicode.filter\u templates()
在[8]:模板?
类型:列表
字符串形式:[u'{使用mdy日期{date=2012年9月}',u'{{Infobox film\n | name=Reaking Life\n | im评论电影{124; Reaking Life}',u'{Richard Linklater}',u'{DEFAULTSORT:Reaking Life}}]
长度:31
文档字符串:
list()->新建空列表
列表(iterable)->从iterable的项初始化的新列表
在[10]中:模板[:2]
出[10]:
[u'{使用mdy日期|日期=2012年9月}},
u“{Infobox film\n | name=清醒生活\n | image=清醒生活海报.jpg\n | image|u size=220px\n | alt=\n | caption=戏剧发行海报\n |导演=[[Richard Linklater]]]\n |制片人=[[Tommy Pallotta]]
[[Jonah Smith]]
安妮·沃克·麦克贝
帕尔默·韦斯特\n |作家=理查德·林克莱特\n |主演=[[Wiley Wiggins]]\n |音乐=格洛弗·吉尔\n |摄影=理查德·林克莱特
[[Tommy Pallotta]]]\n |编辑=桑德拉·阿代尔\n |工作室=[[千言万语]\n |发行商=[[Fox探照灯图片]]\发布日期{电影日期| 2001 | 01 | 23 |[[圣丹斯电影节|圣丹斯]]2001 | 10 | 19 |美国}\n |运行时间=101分钟{引用网页|标题{唤醒生活|(15)|网址=http://www.bbfc.co.uk/releases/waking-life-2002-3|作品=[[英国电影分级委员会]]|日期=2001年9月19日|访问日期=2013年5月6日}\国家=美国\n语言=英语\n |预算=\n |毛额=3176880美元{{引用网站|标题=“清醒的生活”(2001)|工作=[[票房魔咒]]| url=http://www.boxofficemojo.com/movies/?id=wakinglife.htm|accessdate=2010年3月20日}}\n}“]
在[11]中:infobox_film=模板[1]
在[12]中:对于infobox_film.params中的参数:
打印param.name、param.value
叫醒生活
image-Life-Poster.jpg
图像大小220px
中高音
字幕剧场发行海报
董事[[Richard Linklater]]
制片人[[Tommy Pallotta]]
[[Jonah Smith]]
安妮·沃克·麦克贝
作家理查德·林克莱特
主演[[Wiley Wiggins]]
音乐格洛弗·吉尔
电影摄影理查德·林克莱特
[[Tommy Pallotta]]
编辑桑德拉·阿代尔
工作室[[千字]]
分销商[[福克斯探照灯图片]]
上映{电影日期| 2001 | 01 | 23 |[[圣丹斯电影节|圣丹斯]]2001 | 10 | 19 |美国}
运行时101分钟{引用web |标题=“清醒的生活”(15)| url=http://www.bbfc.co.uk/releases/waking-life-2002-3|作品=[[英国电影分级委员会]]|日期=2001年9月19日|访问日期=2013年5月6日}
美国
语言英语
预算
总收入3176880美元{引用网页|标题="清醒的生活"|工作=[[票房魔咒]]|网址=http://www.boxofficemojo.com/movies/?id=wakinglife.htm|accessdate=2010年3月20日}
别忘了参数也是mwparserfromhell对象!我知道这个问题很老,但我正在搜索一个解析wikipedia xml转储的库。但是,建议的库wikidump和mwlib没有提供很多代码文档。然后,我找到了,其中有一些代码文档在:。WikiExtractor似乎是一个如今在Python中实现这一点的干净、简单和高效的方法: 它提供了一种将Wikipedia转储解析为简单文件结构的简单方法,如下所示:
<doc>...</doc>
<doc>...</doc>
...
<doc>...</doc>
。。。
...
...
...
…每个文档看起来像:
<doc id="2" url="http://it.wikipedia.org/wiki/Harmonium">
Harmonium.
L'harmonium è uno strumento musicale azionato con una tastiera, detta manuale.
Sono stati costruiti anche alcuni harmonium con due manuali.
...
</doc>
口琴。
口琴是一种乐器,它是一种音乐。
这是一种非常好的口琴。
...
我知道这是一个老问题,但我这里有一个很棒的脚本,它读取wiki转储xml并输出一个非常好的csv:
PyPI:
GitHub:thx寻求帮助。我在你给我的链接中尝试了mwlib教程,但是我不确定如何使用retur的Article对象进行操作
<doc id="2" url="http://it.wikipedia.org/wiki/Harmonium">
Harmonium.
L'harmonium è uno strumento musicale azionato con una tastiera, detta manuale.
Sono stati costruiti anche alcuni harmonium con due manuali.
...
</doc>