python3.6从网页源码中抓取的unicode无法输出中文 10

如\u897f\u74dc\u9053\u4eba直接定义a='\u897f\u74dc\u9053\u4eba'然后print(a)得到‘西瓜道人’但是用正则表达式从网... 如\u897f\u74dc\u9053\u4eba直接定义a = '\u897f\u74dc\u9053\u4eba'然后print(a)得到‘西瓜道人’但是用正则表达式从网页中爬取到的如name[0] = '\u897f\u74dc\u9053\u4eba'也是str类型,print出来却是‘\u897f\u74dc\u9053\u4eba’???用if 比较a和name[0]得到的是false,但是不同在哪?我把字符串按'\'分割再用join()函数重新拼成原字符串,输出的还是unicode码,没有自动转成中文 展开
 我来答
新不起浪
2017-07-22 · 做一名合格的环保卫士
新不起浪
采纳数:502 获赞数:2777

向TA提问 私信TA
展开全部
import requests
from bs4 import BeautifulSoup
import chardet
def get_charset(byte_str):
    charset=chardet.detect(byte_str)['encoding']
    return charset
r=requests.get('http://xiaorui.cc/2016/02/19/代码分析python-requests库中文编码问题/')
r.encoding=get_charset(r.content)
soup=BeautifulSoup(r.text,'lxml')
soup.text

乱码的原因主要是网页的字符集和你输出的字符集不一致造成的,让你的输出和采集到的字符集保持一致就可以了

我这里用requests

urllib库也是一样的

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式