我一直在尝试通过HTTP查询检索信息,例如
http://www.opencellid.org/cell/get?key=xxxxxxxxxxxxx&mnc=1&mcc=228&lac=101&cellid=7283
以XML格式返回一个响应,如
<rsp stat="ok">
<cell nbSamples="1" mnc="1" lac="101" lat="46.52079" lon="6.56676" cellId="7283" mcc="228" range="6000"/>
</rsp>
我尝试使用response
和urllib
模块打开网址,然后使用elementtree.ElementTree
进行解析。
代码段:
url = 'http://www.opencellid.org/cell/get?key=xxxxxxxxxx&mnc=1&mcc=228&lac=101&cellid=7283 '
rss = parse(requests.get(url = url)).getroot()
pprint(rss)
但是我收到以下错误:
xml.parsers.expat.ExpatError: junk after document element: line 5, column 0
只需打印响应即可生成HTML成功代码。请帮忙!
答案 0 :(得分:1)
您忘记在响应对象上调用内容。这就是你获得实际xml的方法。
content = requests.get(url = url).content
rss = parse(content).getroot()
答案 1 :(得分:0)
我建议的第一件事就是只保存带有xml内容的文本文件:
<rsp stat="ok">
<cell nbSamples="1" mnc="1" lac="101" lat="46.52079" lon="6.56676" cellId="7283" mcc="228" range="6000"/>
</rsp>
确保最后没有尾随字符。然后检查解析是否有效。 如果确实如此,那么你就知道它存在通信问题,然后必须弄清楚如何“清理”你正在接收的内容。
祝你好运!