一、HTTP 8种请求方式:
OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。
HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
GET:向特定的资源发出请求。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。
PUT:向指定资源位置上传其最新内容。
DELETE:请求服务器删除Request-URI所标识的资源。
TRACE:回显服务器收到的请求,主要用于测试或诊断。
CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
二、Requests库的异常:
requests.ConnectionError: 网络连接错误异常,如DNS查询失败,拒绝连接等
requests.HTTPError: HTTP错误异常
requests.URLRequired:URL缺失异常
requests.TooManyRedirects: 超过最大重定向次数,产生重定向异常
requests.ConnectTimeout: 连接远程服务器超时异常
requests.Timeout: 请求URL超时,产生超时异常
其中r.raise_for_status() 如果不是200, 产生异常requests.HTTPError
三、requests库主要方法
1.requests.get(url, params=None, **kwargs)
构造一个向服务器请求资源的Request对象,返回一个包含服务器资源的Response对象。
url: 拟获取页面的url链接。
params: url 中的额外参数,字典或字节流格式,可选。
**kwargs: 12个控制访问的参数(除去requests.request()中的param)。
Response对象属性:
r.status_code : HTTP请求的返回状态,200表示连接成功, 404表示失败
r.text: HTTP响应内容的字符串形式,即,url对应的页面内容
r.encoding: 从HTTP header中猜测的响应内容编码方式
r.apparent_encoding: 从内容中分析出相应内容编码方式(备选编码方式)
r.content: HTTP相应内容的二进制形式
r.headers: 网页头部信息
2.requests.request(method, url, **kwargs):
构造一个请求,支撑各方法的基础方法。
method: 请求方式('GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'delete', 'OPTIONS')
url: 拟获取界面的url链接
**kwargs: 控制访问的参数,13个
a.params: 字典或字节序列, 作为参数增加到url中.
b.data: 字典、字节序列或文件对象, 作为Request的内容。
c.json: JSON格式数据,作为Request的内容。
d.header: 字典,HTTP开头。
e. cookies: 字典或CookieJar, Request中的cookie.
f. auth: 元组, 支持HTTP认证功能。
g.files: 字典类型,传输文件
h. timeout: 设定超时时间,秒为单位。
i.proxies: 字典类型,设定访问代理服务器,可以增加登陆认证。
j.allow_redirects: True/False, 默认为True, 重定向开关。
k.stream: True/False ,默认为True, 获取内容立即下载开关.
l.verify: True/False, 默认为True, 认证SSL证书开关。
m.cert: 本地SSL证书路径。
3.requests.head(url, **kwargs): 获取HTML网页的主要方法,对应于HTTP的HEAD, **kwargs同requests.request()。
4.requests.post(url, data = None, json=None, **kwargs): 向HTML网页提交POST请求的方法,对应于HTTP的POST。
5.requests.put(url, data=None, **kwargs): 向HTML网页提交PUT请求的方法,对应于HTTP的PUT。
6.requests.patch(url, data=None,**kwargs): 向HTML网页提交局部修改请求,对应于HTTP的PATCH。
7.requests.delete(url,**kwargs): 向HTML页面提交删除请求,对应于HTTP的DELETE。