TypeError:解码Unicode不支持python

时间:2013-07-17 13:30:39

标签: python python-2.7 unicode-string lxml.html

我正在使用lxml.html来解析html文件并从页面中获取文本。 Bur现在我有一个字符串'例如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)

我得到了追溯:

  

TypeError:不支持解码Unicode

如何通过使用unicode字符打印字符串来解决此问题?

1 个答案:

答案 0 :(得分: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网站上的about页面,您可以看到返回的文本确实包含'in。

我希望这能帮助你朝着正确的方向前进。