关于python爬取网页编码的问题

在进行网络爬虫项目时,遇到编码问题导致的UnicodeDecodeError。首先尝试使用'utf-8'解码网页内容,但出现错误。通过查看网页源码发现编码为'gb2312',然而使用'gb2312'解码仍然报错。最终确定正确的编码方式是'gbk',成功解码网页内容。该问题强调了在处理网页编码时需依据实际编码进行转换的重要性。
摘要由CSDN通过智能技术生成

爬虫的编码问题

今天在做爬虫项目的时候,发现有报错。
代码如下:

response = urllib.request.urlopen(url)
html_b = response.read()
html = html_b.decode('utf-8')

错误:
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xbb in position 257: invalid start byte

意思是不能用utf-8转,然后想到可能是网页编码的问题
然后查看了下网页源码

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

于是就把代码改成如下

html = html_b.decode('gb2312')

错误:
UnicodeDecodeError: ‘gb2312’ codec can’t decode byte 0x9d in position 11496: illegal multibyte sequence

还是报错,然后查了好多资料才发现,应该用"gbk"。

总结

网页刚读取到的内容是二进制的,想要得到文字,就得转下编码。
具体转什么码要根据网页的编码来,一般是utf-8,但是像这次就是gbk。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sinat_29049969

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

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

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

打赏作者

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

抵扣说明:

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

余额充值