如何用' utf-8'分析xml字符串在Python中高效编码

时间:2017-04-07 22:35:56

标签: python xml encoding utf-8

raspberry 3上有一个HTTP代理服务器。 XML数据由BeautifulSoup(BS)分析。我发现当数据只包含' ASCII' -format字符时,BS非常快。但是,当某些角色超出' ASCII'时,BS变得非常慢(对于150kb的XML字符串,它将花费超过10秒。) 我还尝试了elementtree结构和XML.dom。他们俩都很慢。 XML.sax要好得多,但对于我在树莓板上的python 2.7.13,XML.sax只能处理' ASCII' ASCII。在使用sax之前,我必须使用data.encode(' ascii''忽略'),但这也需要很长时间。 我只是想知道有一种处理utf8格式XML字符串的好方法吗?

1 个答案:

答案 0 :(得分:0)

分析BS中的“xml”响应

response=requests.post(url)
soup=BeautifulSoup(response.text,'xml')

response.text 

将自动解码响应内容并以“string”形式返回。但是,BS将尝试不同的可能解码方法,直到它成功解码。这需要一些时间。 (我猜“ascii”位于解码方法列表的第一位,这就是为什么“ascii”中的内容被快速解码的原因)

使用

response.encoding='utf-8'

之前

response.text 

告诉BS如何解码响应内容。它会更快。