MENU

一个小小编码问题,半天的苦恼:etree.toString()的编码问题

November 7, 2020 • 数据采集与数据分析(python)

xpath编码.png
初次使用xpath,使用etree.toString(div).decode('utf-8')打印节点。控制台劈了啪啦输出一大堆,以为没什么问题,仔细一看,卧槽,&#12345是个什么定西,应且一个中文也没有,如上图。心想一定是编码出现了问题~。不急,先把这个&#12345拿到网上搜搜看是这个什么鬼。噢,原来如此,是Unicode编码。那简单,decode('Unicode')不就得了,试了一下,提示竟然没有这个编码。卧槽,这个怎么整。。。
定下一想:etree.toString(div)返回bytes数据类型,那就看看能不能先编码再解码。网上一查toString()函数支持encode参数。
解决如下:

etree.tostring(div,encoding='utf-8').decode('utf-8')

看看结果:

xpath编码02.png