Python Urllib / Requests XML iterparse错误

时间:2014-11-26 21:54:11

标签: python xml parsing python-requests urllib

我目前正在尝试从Wikipedia获取XML并使用XML解析它。我的一般设置如下:

import requests
import xml.etree.cElementTree as etree
payload = {'pages': 'Apple', 'action': 'submit', 'offset' : '2008-01-24 09:39:22'}
r = requests.post('http://en.wikipedia.org/w/index.php?title=Special:Export', params=payload, stream=True)
xmlIterator = etree.iterparse(r.raw, events=("start","end"))

当我执行解析语法时,出现以下错误:

for event, element in self.xmlIterator:
File "<string>", line 107, in next
ParseError: no element found: line 249375, column 2

我尝试了同样的方法,urllib接收相同的错误。对于这种特定的XML似乎也会发生这种情况,其他的工作正常。

但奇怪的是如下:如果我将响应存储到文件然后将文件传递给XML解析器,它可以正常工作。 。E.g,:

open("test.xml","w").write(r.text.encode('utf-8'))
xmlIterator = etree.iterparse("test.xml", events=("start","end"))

再次,urllib的行为相同。

有没有人知道问题可能是什么?

0 个答案:

没有答案