python - 解析 bit.ly 的 XML 响应

标签 python xml parsing bit.ly

我正在尝试使用 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 的文档字符串:

Parse a file into a DOM by filename or file object.

你应该尝试:

response = urllib2.urlopen(askfor)
doc = parse(response)

因为响应将表现得像一个文件对象。或者您可以使用 minidom 中的 parseString 方法(然后将 the_page 作为参数传递)。

编辑:要提取 URL,您需要执行以下操作:

url_nodes = doc.getElementsByTagName('url')
url = url_nodes[0]
print url.childNodes[0].data

getElementsByTagName 的结果是所有匹配节点的列表(本例中只有一个)。正如您所注意到的,url 是一个元素,其中包含一个子文本节点,其中包含您需要的数据。

关于python - 解析 bit.ly 的 XML 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3261372/

相关文章:

c# - 无法解析格式为 2013-09-17T05 :15:27. 947 的日期字符串

python - 枚举数据框中的组

Python 函数中的变量?

android - 如何在 xml drawable 上将 alpha/opacity 值设置为颜色?

java - Android TextView 长阴影

c - 为解析器编写规则

python - Beautiful Soup 没有获取 NBA.com 数据

python - 如何修复 "Page not found (404)"错误 ("Django tried these URL patterns... The empty path didn' t 与其中任何一个匹配。”)

android - TextView 字段中换行后的文本居中

python - PEG递归文法