r=requests.get(url,params=None,**kwargs)
1, 使用get函数会内部生成一个Request对象,以及一个Response对象(也就是 r );python
Response对象(r)包含了Request对象发送的所有信息以及爬虫返回的所有内容;编程
1.1 URL:全称为Uniform Resource Locator统一资源定位符,包含了协议,服务器名称,路径和文件名等信息。json
API:全称为application programming interface;应用程序编程接口;浏览器
1.2 params:字典或字符串格式做为参数增长到url中,是额外参数。服务器
1.3 **kwargs:表明十二个控制访问的参数;cookie
(1)data:字典,字符串或文件对象,做为Request对象的内容;网络
(2)json: JSON格式的数据做为Request对象的内容;app
(3)headers:字典,HTTP头部信息;目的是将请求假装成诸如浏览器,使用post方法向服务器发起访问;框架
(4)cookies:字典或者CookieJar,Request中的cookie;函数
(5) auth:元组,支持HTTP认证功能;
(6)files: 字典类型,向服务器传输文件;
(7)timeout: 设定超时时间,单位秒;
(8)proxies:字典类型,设定访问代理服务器,能够增长登陆认证;
(9) allow_redirects:True/False,默认为True,重定向开关; //高级功能使用
(10)stream: 布尔值,默认为真,获取内容当即下载开关;//高级功能使用
(11)verify:布尔值,默认为真,认证SSL证书开关; //高级功能使用
(12)cert:保存本地SSL证书路径; //高级功能使用
13个参数经过赋值的方法来调用
2, requests库的七个主要方法:
requests.request(method,url,**kwargs)
requests.get(url,params=None,**kwargs)
requests.head(url,**kwargs) requests.post(url,data=None,json=None,**kwargs) requests.put(url,data=None,**kwargs) requests.patch(url,data=None,**kwargs)
requests.delete(url,**kwargs)
2.1 request方法:向url页面构造一个请求,其他六种方法经过调用封装好的request函数来实现的;
2.2 get方法: 获取一个HTML页面的信息;对应于HTTP的GET;
2.3 head方法:获取HTML网页的头部信息;对应于HTTP的HEAD;
2.4 post方法:向HTML网页提交POST请求;对应于HTTP的POST;
(根据提交内容的不一样,自动存储信息为form形式或者data形式)
2.5 put方法:向HTML网页提交PUT(全局修改)请求;对应于HTTP的PUT;
(根据提交内容的不一样,自动存储信息为form形式或者data形式)
2.6 patch方法:向HTML网页提交局部修改请求;对应于HTTP的PATCH;
2.7 delete方法:向HTML网页提交删除请求;对应于HTTP的DELETE;
3, 通用代码框架:
try: r=requests.get(url,timeout=30) r.raise_for_status() r.encoding=r.apparnet_encoding() return r.text except: return"产生异常"
4, Response对象的属性:
4.1 r.status_code: HTTP请求返回的状态,200表示成功,404和其余表示失败;
4.2 r.text: 响应内容的字符串形式;
4.3 r.encoding: 从响应内容的头部信息来推断编码形式
4.4 r.apparent_encoding: 从响应内容的内容信息来推断编码形式;
4.5 r.content: 将爬取到的响应内容的二进制形式还原成响应内容;
Response对象提供了一个单独的方法raise_for_status()方法
r.raise_for_status() : HTTP的请求返回状态不是200则产生 request.HTTPError;
5, requests库的异常处理:
5.1 requests.ConnectionError: 网络链接错误异常,如DNS查询失败,拒绝链接等;
5.2 requests.HTTPError: HTTP错误异常
5.3 requests.URLRequired: URL缺失异常
5.4 requests.TooManyRedirects: 超过最大重定向次数,产生重定向异常;
5.5 requests.ConnectTimeout: 链接远程服务器超时异常;
5.6 requests.Timeout: 请求URL超时,产生超时异常;
6, HTTP协议:Hypertext Transfer Protocol 超文本传输协议;是一个基于“请求与响应”模式的,无状态的(非时序)应用层协议;
host: Internet主机域名或IP地址;
port: 端口号,缺省端口默认为80;
path: 请求资源的路径;