最新爬虫扩展——浅谈Response对象_response(1),腾讯T3团队整理

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

首先我们来看下下面这段代码,想来大家应该都不陌生。

import requests
response = requests.get('https://www.baidu.com')
print(response.text)
print(response.content)
  • 这里的response其实是一个Response对象,text和content分别表示取这个对象的text属性和content属性。
  • 其中text表示文本数据形式的网页源代码,content表示字节型数据的网页源代码。

那么Response对象就只有这两个属性吗?还有其他的很有用的属性或方法吗?

当然有,接下来我们先看下Response对象都有些什么内容。

以上就是Response对象所有属性,有的我们暂时不需要了解,先来看看哪些是能够为我们所用的。其中content和text属性,分别表示网页源码的字节型数据和文本数据。

第一个要了解的是apparent_encoding和encoding属性,其中encoding是从HTTP header中猜测的响应内容编码方式,apparent_encoding是根据响应内容分析出的编码方式。

我们应该重点关注apparent_encoding,这个属性能够很好地帮助我们确认网页源码的编码方式,避免获取到的内容乱码。所以在获取网页源码时,为避免乱码,我们可以这么做。

# 实现功能,避免获取到的网页源码是乱码
import requests
res = requests.get('https://www.baidu.com')
res.encoding = res.apparent_encoding
# 这样,我们就不需要去关心获取到的网页源码的编码格式具体是什么
print(res.text)
f = open('baidu.com', 'w', encoding=res.encoding)
f.write(res.text)
f.close()

第二个要了解的是cookies属性,该属性保存了用户的cookie值,我们有的时候可以通过获取到上一个请求的cookie,作为请求头的一个cookie参数传入到请求中。

第三个要了解的是headers属性,这个属性中记录了响应头中的相关内容,虽然不怎么会用到,但还是要理解这是什么。

第四个要了解的是request属性,这个属性记录了请求的相关信息,这其中有一个请求头需要了解一下,通过了解这个请求头,我们能够更加深入地理解我们在编写爬虫的时候,为什么要在请求头中添加User-Agent参数,如果不加这个参数,这个headers属性中的User-Agent值是什么呢,我们可以来看一下:

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

pics/618668825)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值