Python如何解析维基百科xml文件
时间: 2024-02-16 10:09:57 浏览: 272
Python可以使用ElementTree或lxml库来解析维基百科的XML文件。这里以lxml库为例,演示如何解析维基百科的XML文件:
1. 首先,下载维基百科的XML文件,比如英文维基百科的最新版本可以从这里下载:https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2
2. 解压缩下载的XML文件,得到一个XML文件,比如enwiki-latest-pages-articles.xml。
3. 使用lxml库读取XML文件,并解析XML文件中的页面(page)元素:
```python
from lxml import etree
# 打开XML文件
with open('enwiki-latest-pages-articles.xml', 'rb') as f:
# 创建解析器
parser = etree.XMLPullParser(['start', 'end'])
# 循环遍历XML文件
for line in f:
parser.feed(line)
for event, elem in parser.read_events():
if event == 'end' and elem.tag == '{http://www.mediawiki.org/xml/export-0.10/}page':
# 输出页面的标题和内容
title = elem.findtext('{http://www.mediawiki.org/xml/export-0.10/}title')
text = elem.findtext('{http://www.mediawiki.org/xml/export-0.10/}revision/{http://www.mediawiki.org/xml/export-0.10/}text')
print(title, text[:100])
# 清空元素
elem.clear()
# 跳过子元素
while elem.getprevious() is not None:
del elem.getparent()[0]
del elem
```
这段代码读取XML文件的每一行,将其传递给解析器。当解析器遇到页面元素时,提取页面的标题和内容,并输出。
注意,这里使用了XML命名空间来解析维基百科的XML文件。维基百科的XML文件使用了命名空间,所以要使用命名空间来访问元素。
阅读全文