python BeautifulSoup中文乱码问题

工作中采集某网站,到详情页时突然发现有一个页面是乱码。但其他的都正常,百思不得骑姐。百度了一下午啊,智商捉急的很。

一直以为是 requests 获取页面内容时造成的乱码。查询相关资料后发现 res.apparent_encoding 返回的与页面中 charset 一致。

后来想可能是 BeautifulSoup 解析时出现了问题。用 soup.original_encoding 获取编码时发现真的是这个问题。页面时 GB2312 而这里却是 windows-1252

用 from_encoding 设置  BeautifulSoup的编码为 gb2312 却依然乱码。

一脸懵逼了。没办法,继续百度吧。呆逼的我上不了GOOGLE。

这里是找到的答案原话:

请注意 gb2312 不是 “gb2312”,凡 gb2312 的请换成 gb18030. 
微软将 gb2312 和 gbk 映射为 gb18030,方便了一些人,也迷惑了一些人。

所以答案是  soup = BeautifulSoup(res.content,'html.parser',from_encoding="gb18030")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

人工智能-肥鹅

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

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

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

打赏作者

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

抵扣说明:

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

余额充值