爬虫中处理编码乱码问题

博客指出爬虫爬取内容可能出现乱码,原因是网页编码方式与requests默认编码方式不同。可在网页head中查看网页编码,通过代码查看requests编码。处理乱码需使二者匹配,对str二次解析可解决编码不一致问题并拿到标签内内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在爬虫使用的过程中,可能会出现爬取的内容是乱码的情况,就像下面这样
在这里插入图片描述
造成上述乱码情况的原因是因为网页的编码方式和requests的默认编码方式 不同造成的,网页的编码方式可以在网页head中查找到
在这里插入图片描述
可以看到网页的编码方式采用的是gbk,而requests的编码方式可以通过一下代码块进行查看

import requests

url = 'https://www.baidu.com/s?'

response = requests.get(url)
print(response.encoding)  

在这里插入图片描述
可以看到requests的编码方式是ISO-8859-1
这是处理乱码就需要将网页编码方式和requests编码方式匹配

aa = aa.encode('iso-8859-1').decode('gbk')

处理乱码采用的是以上代码,aa的数据类型是str,如果要使用text方法将标签中的内容拿到,还要对str进行二次解析

for dd in dds:
    aa=dd.find('a')
    #处理乱码
    aa = aa.encode('iso-8859-1').decode('gbk')
    aa=BeautifulSoup(aa,'html.parser')
    print(aa.text,'\n')

这样就解决了编码不一致的乱码问题并拿到标签内的内容
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

牧码文

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

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

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

打赏作者

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

抵扣说明:

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

余额充值