Xml Python - 格式不正确

时间:2014-01-29 08:03:16

标签: python xml

我有这段代码:

import requests
from xml.dom.minidom import parseString
site = 'test.com'
r = requests.get('http://bar-navig.yandex.ru/u?ver=2&url=http://%s&show=1' % (site))
#print r.text.encode('utf-8')
xmldoc = parseString(r.text.encode('utf-8'))
print xmldoc.getElementsByTagName('tcy')[0].attributes['value'].value

所以,它有效,但如果我在site'vk.com''google.ru',我有一个错误:xml.parsers.expat.ExpatError: not well-formed (invalid token)

如何解决?感谢。

2 个答案:

答案 0 :(得分:3)

这是一个编码问题。除非另有说明,否则XML应该是基于ASCII的。特别是,此XML源指定它被编码为windows-1251

试试这个:

parseString(r.text.encode('windows-1251'))

然后就可以解析了。

Minidom不是很聪明,否则当传递unicode(这不起作用)时它就能自行解决。

答案 1 :(得分:0)

我尝试使用'utf-8'的编码和' utf-16'除了iso-8859-1之外它没有用(对于一些印度站点,虽然我没有注意到它们上面有任何非ascii字符)。但我切换到Selenium并且全部解决了。避免使用minidom也不是那么困难,因为硒的界面与minidom非常相似。干杯!