Python 如何将unicode文本转换为普通文本
我正在用Python学习美丽的汤 我正试图解析一个简单的网页与书籍列表 例如 但是我想要正确的文本,由Python 如何将unicode文本转换为普通文本,python,unicode,web-scraping,beautifulsoup,ascii,Python,Unicode,Web Scraping,Beautifulsoup,Ascii,我正在用Python学习美丽的汤 我正试图解析一个简单的网页与书籍列表 例如 但是我想要正确的文本,由 s = elems[0].getText() print s >>>The Car Hacker’s Handbook 如何修改我的代码,以便输出“汽车黑客手册”而不是“u'TheCarHacker\u2019sHandbook” 请帮忙。您尝试过使用编码方法吗 elems[0].getText().encode('utf-8') 有关unicode和python的更多信
s = elems[0].getText()
print s
>>>The Car Hacker’s Handbook
如何修改我的代码,以便输出“汽车黑客手册”而不是“u'TheCarHacker\u2019sHandbook”
请帮忙。您尝试过使用编码方法吗
elems[0].getText().encode('utf-8')
有关unicode和python的更多信息,请参见
此外,要发现字符串是否真的是utf-8编码的,可以使用并运行以下命令:
>>> import chardet
>>> chardet.detect(elems[0].getText())
{'confidence': 0.5, 'encoding': 'utf-8'}
你可以试试
import unicodedata
def normText(unicodeText):
return unicodedata.normalize('NFKD', unicodeText).encode('ascii','ignore')
这将把unicodetext转换为纯文本,您可以写入文件。您得到的结果没有问题。这是一个unicode字符串,带有一个奇特的撇号字符。谢谢,@Selcuk。但是如何使用字符串“u'The Car Hacker\u2019s Handbook'”并将其存储在文件/数据库中?它会被妥善保存吗?我的意思是我尝试了
f.write(elems[0].getText())
,我得到了unicodeincodeerror。谢谢,@Selcuk。我得到了它。我使用elems[0].getText().encode('utf-8')
将其保存到文件或数据库中。如果要在数据库中存储unicode文本,请将列设置为文本类型,并设置数据库适配器来为您处理de和编码。io
模块包含在写入和读取时在unicode和字节之间转换的文本文件类型。谢谢。我尝试了elems[0].getText().encode('utf-8')
。成功了。Python终端将其打印为“汽车黑客手册”
,但如果写入文件,则文件内容中包含汽车黑客手册。为了正确起见,我编辑了答案。@madhusudan__k欢迎您这样做。如果您认为您通过这个答案解决了所需的问题,请不要忘记通过单击投票计数正下方的箭头来接受答案。@madhusudan_k python没有utf-8编码,因此您(在python控制台上)使用unicode字符串调用chardet.detect()
,这是没有意义的。它用于检测字节字符串中的编码。它还删除了“撇号”,因此书名成为“汽车黑客手册”。
elems[0].getText().encode('utf-8')
>>> import chardet
>>> chardet.detect(elems[0].getText())
{'confidence': 0.5, 'encoding': 'utf-8'}
import unicodedata
def normText(unicodeText):
return unicodedata.normalize('NFKD', unicodeText).encode('ascii','ignore')