记一个遇到的requests库编码的小问题

今天刚开始看MOOC的爬虫课程,在开头看见老师给的通用爬虫框架有这么一句
r=requests.get(url)
r.encoding=r.apparent_enconding
return r.text

这里其实是存在2个问题的:

  1. requests库的content与text
    这个是开课8老师提过的
    content返回类型是str
    text返回类型是Unicode,所以需要指定一下编码形式,不然容易显示乱码
    还说了啥忘记了,反正他的结论是建议用content.decode()
    关于这个decode,MAC系统默认是utf-8,Windows默认gbk,所以Windows有时需要根据网页的编码指定encoding=“utf-8”
  2. 将r的内容用with open保存到txt文件时的编码问题
    用with open保存到txt文件时,光在content里面decode了还不一定ok,我Windows系统遇到了一个这样的问题:
    UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xbb’ in position 30633: illegal multibyte sequence
    或者UnicodeEncodeError: ‘gbk’ codec can’t encode character '\xa0’错误
    查询之后的解决办法:
    (1)在with open里加encoding=‘utf-8’,
    (2)content不加decode然后保存的时候直接保存二进制字节wb ​​​​
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值