【问题描述】使用requests库抓取网页源代码输出到VSCode终端出现以下两种乱码,如何才能正确显示呢?
【小千解答】进行相应的数据类型转换或转码,示例代码如下:
import requests url = 'http://fund.eastmoney.com/company/default.html' res = requests.request('GET',url) if (res.status_code == 200): # 处理前 print(res.content[:300]) # 方法1 print(bytes.decode(res.content)[:300]) # 方法2 print(str(res.content,'utf-8')[:300]) # 方法3 print(res.content.decode('utf-8')[:300]) # 转码前 print(res.text[:300]) # 转码后 print(res.text.encode(res.encoding).decode('utf-8')[:300])
注:res.content返回bytes类型,res.text返回str类型,但编码不匹配。
处理后效果:
【参考资料】