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字符串的好方法吗?
答案 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如何解码响应内容。它会更快。