爬虫 .content 和 .text 的用法区别

编程知识 更新时间:2023-04-05 06:30:31

requests对象的get和post方法都会返回一个Response对象,这个对象里面存的是服务器返回的所有信息,包括响应头,响应状态码等。其中返回的网页部分会存在.content和.text两个对象中。

.content中间存的是字节码 .text存的是.content编码后的字符串

一般来说 .text直接用比较方便 返回的是字符串 但是有时候会解析不正常导致

返回的是一堆乱码这时用.content.decode('utf-8')就可以使其显示正常。

总的来说.text是现成的字符串,.content还要编码,但是.text不是所有时候显示都正常,这是就需要用.content进行手动编码。

 

对requests获取的原始数据,有两种获取形式,一个是r.content一个是r.text。

二者的区别在于content返回的是byte型数据,而text返回的是Unicode数据,也就是说text对原始数据进行的特殊的编码,而这个编码方式是基于对原始数据的猜测(响应头),

text一般用于返回的文本
content的一般用于对返回的其他数据类型

但是对于某些网站的中文用text可能会导致返回乱码,所以最好是使用content然后自己进行重新编码。

 

最终结论是:text 返回的是unicode 型的数据,一般是在网页的header中定义的编码形式。

content返回的是bytes,二级制型的数据。

也就是说你如果想要提取文本就用text

但是如果你想要提取图片、文件,就要用到content

举例说明:


# 例如下载并保存一张图片
 
import requests
 
jpg_url = 'http://img2.niutuku/1312/0804/0804-niutuku-27840.jpg'
 
content = requests.get(jpg_url).content
 
with open('demo.jpg', 'wb') as fp:

 

更多推荐

爬虫 .content 和 .text 的用法区别

本文发布于:2023-04-05 06:30:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/570bc5e9c02ba25fb145d33230684eaa.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫   区别   content   text

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 45285文章数
  • 14阅读数
  • 0评论数