解决python爬虫中文乱码问题

本文详细介绍了在Python爬虫过程中遇到的中文乱码问题及其解决办法。通过对比`req.text`和`req.content`的区别,指出在处理不同编码时的注意事项。在实际案例中,分析了错误的示例并提供了正确的解码和编码方案。同时,讨论了Requests库自动解码的原理,强调了HTTP头部和`Content-Type`在确定编码中的作用。
摘要由CSDN通过智能技术生成

req = requests.get(url)返回的是类对象

其包括的属性有:

(1)req.encoding:返回编码方式

(2)req.text:text返回的是处理过的Unicode型的数据

(3)req.content:content返回的是bytes型的原始数据

content是把内容bytes返回. 而text是decode成Unicode. 如果headers没有charset字符集的化,text()会调用chardet来计算字符集

也就是说text是解码完的数据,调用req.text()就不需要解码了,问题经常出现解码中的类型码是否正确,这个下面在说,先明白text()和content()的区别

假设对获取的内容最终都编码成‘utf-8’的类型text()和content的处理方式如下所示:

requests.get(url).text.encode(‘utf8’,‘ignore’) #如果req.text()自动解码正确,直接编码,自动解码下面介绍

requests.get(url).content.decode(‘gbk’,‘ignore’).encoding(‘utf-8’,‘ignore’) #假设源码是gbk,则需要先解码在编码成utf-8

  1. 遇到的中文乱码问题

1.1 简单的开始

使用requests来拔取网站内容十分方便,一个最简单的代码段只需要2-3行代码就行。

url = ‘http//www.pythonscraping.com/’

req = requests.get(url)

print(req.t

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值