使用urllib和minidom获取XML数据

1 投票
4 回答
10459 浏览
提问于 2025-04-16 01:57

我正在尝试从一个XML服务获取数据……就是这个。

http://xmlweather.vedur.is/?op_w=xml&type=forec&lang=is&view=xml&ids=1

我正在使用urllib和minidom,但似乎无法让它工作。我之前用minidom处理过文件,但没有用过网址。

这是我尝试使用的代码

xmlurl = 'http://xmlweather.vedur.is'
xmlpath = xmlurl + '?op_w=xml&type=forec&lang=is&view=xml&ids=' + str(location)
xmldoc = minidom.parse(urllib.urlopen(xmlpath))

有人能帮我吗?

4 个回答

0

试试这个:

f = urllib.urlopen(xmlpath)
html = f.read()
xmldoc = minidom.parse(html)
1

这个parse()方法是用来寻找一个文件的,而你给它的是一个字符串。还有一个叫做parsestring()的类可以处理字符串。

试试这个:

from xml.dom.minidom import parseString
import urllib2
xml = urllib2.urlopen(xmlpath)
dom = parseString(xml.read())
4

下面的内容应该可以正常工作(或者至少能让你大致了解哪里出了问题):

from xml.dom.minidom import parse
import urllib

xmlurl = 'http://xmlweather.vedur.is'
xmlpath = xmlurl + '?op_w=xml&type=forec&lang=is&view=xml&ids=' + str(location)
try:
    xml = urllib.urlopen(xmlpath)
    dom = parse(xml)
except e as Exception:
    print(e)

撰写回答