1

我正在尝试使用 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)

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

4

2 回答 2

2

您没有提供错误消息,所以我不能确定这是唯一的错误。但是,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 节点,其中包含您需要的数据。

于 2010-07-16T02:02:05.113 回答
1
from xml.dom.minidom import parseString
doc = parseString(the_page)

请参阅xml.dom.minidom.

于 2010-07-16T02:03:14.877 回答