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

2024-11-25 23:00:31
推荐回答(1个)
回答1:

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库也是一样的