类型错误:不支持解码Unicode Python

3

我正在使用lxml.html来解析HTML文件并从页面中获取文本。但现在我有一个字符串,其中包含一个字符',例如Florian's,因此,在打印输出时会得到回溯。

parent_link_id_text =  parent_link_id.xpath('./td[@width="400"]/text()')
print (SGS_Mid[0]+";"+"External"+";"+str(link_id_num[0])+";"+parent_link_id_text[0]+";"+parent_link_link[0], file = log_file_1)

UnicodeEncodeError: 'ascii'编解码器无法对第56-58个字符进行编码:该值不在128的范围内

然后我尝试了这个

print (SGS_Mid[0]+";"+"PublicFreeUrl"+";"+str(link_id_num[0])+";"+unicode(parent_link_id_text[0],"utf-8")+";"+parent_link_link[0], file = log_file_1)

我遇到了一个错误信息:

类型错误:不支持解码Unicode

当我尝试打印带有Unicode字符的字符串时,该如何解决这个问题?

1个回答

1

我不确定这是否是解决您问题的方法,但也许可以指导您朝着正确的方向前进。

没有看到您获取数据的代码,我会进行猜测并尝试提供一个程序化的解决方案。

请参考以下代码:

import lxml.html as lh
import urllib2

url = 'http://loremipsum.net/about.html'

doc = lh.parse(urllib2.urlopen(url))

value = doc.xpath('//p/strong/text()')[0]

print value

打印结果:

什么是“lorem ipsum”?

通过阅读lorem ipsum网站的关于页面,您可以看到返回的文本确实有“'”。

我希望这能帮助您朝正确的方向发展。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接