随笔 - 15  文章 - 0  评论 - 0  阅读 - 8778

爬虫--Response的基本理念(2)

Response和我们即将在后面说到的Request容器是一一对应的,他是web容器在用户每次请求服务端的时候,创建的一对容器对象,Response容器是服务端返还给客户机的一个响应内容对象容器,比如说:响应头,响应行,实体数据等信息,而Request容器对象是,代表用户请求服务端的的一个容器对象,比如客户机的请求头,请求行,以及携带的参数信息等。所以说Request容器对象和Response容器对象是一一对应的,他们两的生命周期也是一样的,就是在一次用户请求中。下面就来详细说一下Response容器对象的相关知识吧!

 

 

一 、Response对象的5个属性,用于访问网页常用(重点)

 

复制代码
r.status_code :        HTTP请求的返回状态,200表示成功,404表示失败, 不是200的状态码都属于失败

r.text :             HTTP响应内容的字符串形式,即URL对应的页面内容
r.encoding :           HTTP hrader(头部)中猜测响应内容的编码方式
r.apparent_encoding :    从内容中分析出的响应内容,备选编码方式
r.content :          HTTP响应内容的二进制形式
复制代码

 

 

二 、GET方法获取网络资源的基本流程:

 

response的重要:这样的一个返回对象,返回了所用的网页内容

 

三 、 Response库的异常

r.raise_for_status() : 如果不是200,产出异常requests.HTTPError,这个方法是专门与异常打交道的,有一个非常有趣的功能

r.raise_for_status() 能够判断返回的Response的类型 

 

四 、Response对象的相关方法:

addCookie(Cookie cookie):这个方法是向Response容器中添加一个Cookie,然后服务器容器会自动的将这个Cookie回写给客户机的,至于Cookie的相关知识我们会在后面的文章中进行详解,这篇文章中这个方法暂时用不到。

addDateHeader(String name ,long date):这个是向客户机添加一个时间值属性的响应头信息,比如那个缓存的响应头expires

addHeader(String name,String value):这个是向客户机添加一个字符串值属性的响应头信息,比如重定向的响应头location

addIntHeader(String name ,int value):这个是向客户机添加一个字符串属性的响应头信息

containsHeader(String name):这个方法是判断是否含有这个响应头信息字段

encodeURL(String name):这个方法是用于url改写的功能的,这个和session有关,等到说session那篇文章的时候在详细说明

sendRedirect(String name):这个方法是用于请求重定向的,和响应头中的location字段的作用相同

setHeader(String name,String value)/setIntHeader(String name,int value)/setDateHeader(String name,long date):这些方法和addHeader方法是相对应的,唯一和addHeader不同的是,addHeader是向Response中添加一个响应头信息,而setHeader是修改一个响应头信息的。

setStatus(int value):通过这个方法是设置响应码的,比如:200,304,404等。

getOutputStream():通过这个方法可以拿到一个字节流,然后可以向Response容器中写入字节数据,最后客户机向Response容器中拿去数据进行显示

getWriter():通过这个方法可以拿到一个字符流(PrintWriter),然后可以向Response容器中写入字符数据,最后客户机向Response容器中拿去数据进行显示

setContentLength():通过这个方法设置服务器向用户返回的数据长度,我们在HTTP协议详解这篇blog中的那个压缩数据的返回的例子中有说到

setContentType():方法可以直接设置响应头content-type的内容

 

 

posted on   时间忘淡一切  阅读(226)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示