解析bit.ly的XML响应

时间:2010-07-16 01:42:57

标签: 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)

这会导致错误。我做错了什么?

2 个答案:

答案 0 :(得分:2)

您没有提供错误消息,因此我无法确定这是唯一的错误。但是,xml.minidom.parse不接受字符串。来自parse的文档字符串:

  

通过文件名或文件对象将文件解析为DOM。

你应该尝试:

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

因为response的行为类似于文件对象。或者您可以使用parseString中的minidom方法代替(然后将the_page作为参数传递)。

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

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

getElementsByTagName的结果是匹配的所有节点的列表(在这种情况下只有一个)。 url是您注意到的元素,它包含一个子Text节点,其中包含您需要的数据。

答案 1 :(得分:1)

from xml.dom.minidom import parseString
doc = parseString(the_page)

请参阅xml.dom.minidom的文档。