lxml.etree._ElementUnicodeResult 转为字符
在爬虫过程中,使用的是lxml的xpath查找对应的字段。
address=each.xpath('.//address/text()')[0].strip()
结果用address与一般的字符进行拼接时,总是出现
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
这种错误。
主要因为python2的蛋疼的编码原因。
解决办法:
根据lxml的官方文档:http://lxml.de/api/lxml.etree._ElementUnicodeResult-class.html
object --+ | basestring --+ | unicode --+ | _ElementUnicodeResult
_ElementUnicodeResult 是unicode的一个子类。
那么可以直接将它转为unicode
address.encode('utf-8') 就可以了。
address=each.xpath('.//address/text()')[0].strip()
结果用address与一般的字符进行拼接时,总是出现
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
这种错误。
主要因为python2的蛋疼的编码原因。
解决办法:
根据lxml的官方文档:http://lxml.de/api/lxml.etree._ElementUnicodeResult-class.html
object --+ | basestring --+ | unicode --+ | _ElementUnicodeResult
_ElementUnicodeResult 是unicode的一个子类。
那么可以直接将它转为unicode
address.encode('utf-8') 就可以了。