lxml findall() 问题

2 投票
1 回答
1676 浏览
提问于 2025-04-16 16:22

我正在尝试写一个简单的程序,用来获取维基百科的最近更改,并解析那个XML文件。

我卡在了一个地方,就是findall()这个函数没有正常工作。我哪里出错了呢?

import urllib2
from lxml import etree as ET

result = urllib2.urlopen('http://en.wikipedia.org/w/api.php?action=query&format=xml&list=recentchanges&rcprop=title|ids|sizes|flags|user|timestamp').read()

xml=ET.fromstring (result)

print xml[0][0][0].attrib # that works!

print xml.findall ('api/query/recentchanges/rc') # that don't!

1 个回答

3

我怀疑根节点就是主题节点,所以它在根节点里面寻找一个叫“api”的节点。如果是这样的话,下面这两种写法都可以用:

query/recentchanges/rc

/api/query/recentchanges/rc

撰写回答