解析 bit.ly 的 XML 响应
题
我正在尝试使用 bit.ly api 进行缩短并让它工作。它向我的脚本返回一个 xml 文档。我想提取标签,但似乎无法正确解析它。
askfor = urllib2.Request(full_url)
response = urllib2.urlopen(askfor)
the_page = response.read()
所以 the_page 包含 xml 文档。我试过:
from xml.dom.minidom import parse
doc = parse(the_page)
这会导致错误。我究竟做错了什么?
解决方案
您没有提供错误消息,因此我无法确定这是唯一的错误。但, xml.minidom.parse
不带字符串。来自文档字符串 parse
:
通过文件名或文件对象将文件解析为 DOM。
你应该试试:
response = urllib2.urlopen(askfor)
doc = parse(response)
自从 response
将表现得像一个文件对象。或者你可以使用 parseString
中的方法 minidom
相反(然后通过 the_page
作为论据)。
编辑:要提取 URL,您需要执行以下操作:
url_nodes = doc.getElementsByTagName('url')
url = url_nodes[0]
print url.childNodes[0].data
的结果 getElementsByTagName
是所有匹配节点的列表(在本例中只有一个)。 url
正如您所注意到的,它是一个 Element,它包含一个子 Text 节点,其中包含您需要的数据。
其他提示
from xml.dom.minidom import parseString
doc = parseString(the_page)
.
请参阅 xml.dom.minidom
不隶属于 StackOverflow