彻底解决网络爬虫遇到的中文乱码问题

你是否遇到过下面的情况:
作为爬虫新手好不容易写了一个爬虫结果爬出来的数据中文数据乱码导致不能使用
如图:
在这里插入图片描述
其实很好解决:
如果你是使用的request模块得到的相应对象则可以如下设置:
主要由两种情况,这是根据网页所使用的的编码来看的,如果不想找,就直接两种同时使用,总有一种是适合的。如果想找就看网页http请求中content对应类型的设置:
在这里插入图片描述
但是这个也不能全信,因为存在给的和实际使用的不一致的情况,所以建议两种方法都试一下。
1.网页端为utf-8形式

response=requests.get(url=url,headers=headers)
response.encoding='utf-8'
response=response.text

2.网页端为gbk形式

response=requests.get(url=url,headers=headers)
response.encoding='gbk'
response=response.text

结果如下:
在这里插入图片描述
如果你是使用的urllib 则可以尝试使用
先得对象后处理
RES=urllib2.urlopen(request).read()
RES = RES.decode(‘gb2312’).encode(‘utf-8’)
目前该方法不常用,所以不做展开,请自行尝试

造成我们爬取到的网页中文乱码的一部分原因:
1、不同编码内容混杂:HTML乱码是由于html编码问题照成(常见 gb2312与utf-8两种编码内容同时存在照成)
2、未设置HTML编码:未设置,这里设置的是utf-8
3、使用记事本编辑html:使用记事本直接编辑html造成html编码乱码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

看不见的罗辑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值