python requests 详细学习content 和text 的区别

之前使用requests 不求甚解,一直使用content输出文本。阅读文档后记录如下:

import requests
r=requests.get('http://www.baidu.com')
print r.content
print r.text

你会发现,content输出的文本没问题,但是text输出的文本貌似是乱码。

深究下,我们使用

print type(r.content)
print type(r.text)

content 输出类型为 str
text 输出类型为 unicode

使用
print r.encoding

输出 ISO-8859-1 编码

属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列。比如,字母’a’的编码为0x61=97。

很明显,iso8859-1编码表示的字符范围很窄,无法表示中文字符。

我们通过指定编码

r.encoding='utf-8'
print r.text

此时,刚刚的乱码已经可以正确显示了。

至此,我们大致可以说

content返回的是str 类型,就是我们眼睛所看到的内容,被浏览器渲染过。
text返回的是unicode 类型,可能是返回的最原始的数据,可以理解为尚未渲染过。

不同看法欢迎大家留言讨论

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值