httplib模块

httplib是一个相对底层的http请求模块,其上有专门的包装模块,如urllib内建模块,goto等第三方模块,但是封装的越高就越不灵活,比如urllib模块里请求错误时就不会返回结果页的内容,只有头信息,对于某些需要检测错误请求返回值的场景就不适用,所以就得用这个模块了。

目录

1. httplib.HTTPConnection

2. HTTPConnection对象request方法

3. HTTPConnection对象getresponse方法

4. HTTPConnection对象close()方法

5. HTTPResponse对象read方法

6. HTTPResponse对象的其它方法或属性


1. httplib.HTTPConnection

说明:

该类用于创建一个http类型的请求链接

原型:

HTTPConnection(host[, port[, strict[, timeout]]])

host: 请求的服务器host,不能带http://开头

port: 服务器web服务端口

strict: 是否严格检查请求的状态行,就是http1.0/1.1 协议版本的那一行,即请求的第一行,默认为False,为True时检查错误会抛异常

timeout: 单次请求的超时时间,没有时默认使用httplib模块内的全局的超时时间

实例:

httplib模块_第1张图片

返回:

HTTPConnection类会实例并返回一个HTTPConnection对象

2. HTTPConnection对象request方法

说明:

发送一个请求

原型:

conn.request(method, url[, body[, headers]])

method: 请求的方式,如'GET','POST','HEAD','PUT','DELETE'等

url: 请求的网页路径。如:'/index.html'

body: 请求是否带数据,该参数是一个字典

headers: 请求是否带头信息,该参数是一个字典,不过键的名字是指定的http头关键字

实例:

返回:

无返回,其实就是相当于向服务其发送数据,但是没有最后回车

3. HTTPConnection对象getresponse方法

说明:获取一个http响应对象,相当于执行最后的2个回车

原型/实例:

返回:

HTTPResponse对象

4. HTTPConnection对象close()方法

说明:关闭指定的httpconnect链接

实例:

5. HTTPResponse对象read方法

说明:获得http响应的内容部分,即网页源码

原型:

body = res.read([amt])

amt: 读取指定长度的字符,默认为空,即读取所有内容

实例:

body = res.read()

pbody = res.read(10)

返回:

网页内容字符串

6. HTTPResponse对象的其它方法或属性

方法:

getheaders()

获得所有的响应头内容,是一个元组列表[(name,value),(name2,value2)]

getheader(name[,default])

获得指定的头内容

fileno()

socket的fileno

属性:

msg

所有的头信息,和getheaders方法一样,只不过这个是原始未处理的字符串

status

当次请求的状态

version

当次请求的http协议版本,10是http1.0, 11是http/1.1

reason

当次请求的结果的表述内容,200是ok,404是Not Found

你可能感兴趣的:(python,scrapy)