首页 > 其他 > 详细

request库使用

时间:2020-02-06 10:57:43      阅读:82      评论:0      收藏:0      [点我收藏+]

一、requests.get(url,parama=None,**kwargs)

url:拟获取页面的url链接

parma:url中的额外参数,字典或字典流格式,可选

**kwargs:12个控制访问参数

 

二、Response对象属性

r.status_code:    http请求的返回状态,200表示连接成功,404表示失败(除了200外都是属于失败的)

r.text:        http相应内容的字符串形式,即,URL对应的页面内容

r.encoding:     从HTTP hradet 中猜测的相应内容编码方式

r.apparent_encoding:  从内容中分析出的相应内容编码方式(备选编码方式)

r.content:      HTTP响应内容的二进制形式

注意:r.encoding:如果header中不存在charset,则认为编码为ISO-8859-1

   r.apparent_encoding:根据网页内容分析出的编码方式

 

三、理解Request库的异常

requests.ConnectioError:    网络连接错误异常,如dns查询失败、拒绝连接等

requests.HTTPError:      HTTP错误异常

requests.URLRequired:      URL缺失异常

requests.TooManyRedirects:   超过最大重定向次数,产生重定向异常

requests.ConnectTimeout:    连接远程服务器超时异常

requests.Timeout:         请求URL超时,产生超时异常

r.raise_for_status()        如果不是200,产生异常request.HTTPError

 

四、Request库的7个主要方法

1、request.request()    构造一个请求,支撑一下各方法的基础方法

requests.get(method,url,**kwargs)

①method:请求方法,对应get/put/post等7种

②url:拟获取页面的URL链接

③**kwargs:控制访问参数,共13个

params:字典或字节序列,作为参数增加到URL中

kw = {key1:value1 , key2:value2}
r = requests.request(GET,http://python123.io/ws,params=kv)
print(r.url)

data:字典、字节序列或者文件对象,作为Request的内容

kw={key1:value1,key2:value2}
r=requests.request(POST,http://python123.io/ws,data=kw)
body=注册内容
r=requests.request(POST,http://python123.io/ws,data=body)

json:JOSN格式的数据,作为Request的内容

kv={key1:value1,key2:value2}
r=requests.request(POST,http://python123.io/ws,json=kv)

headers:字典,http定制头

hd={user_agent:chram/10}
r=requests.request(POST,http://python123.io/ws,haders=hd)

cookie:字典或Cookiejar,Request中的cookie

auth:元祖,支持HTTP认证功能

files:字典类型,传输文件,向某个链接提交某个文件

fs={file:open(data,xls,rb)}
r=requests.request(POST,http://python123.io/ws,files=fs)

timeout:设定超时时间,以秒为单位

r=requests.request(GET,http://python123.io/ws,timeout=10)

proxies:字典类型,设定访问的代理服务器,可以增加登陆认证

pxs={http:http://user:pass@10.10.10.1:1234        https:https://10.10.10.1:4321}
r=requests.request(GET,http:www.baidu.com,proxies=pxs)                

allow_redirects:True/False,默认为True,重定向开关

stream:True/False,默认为True,获取内容立即下载开关

verify:True/False,默认为True,认证SSL证书开关

cert:本地SSL证书路径

2、requests.get()      获取HTML网页的主要方法,对应HTTP的get

3、requests.head()     获取HTML网页头信息的方法,对应于HTTP的head

4、requests.post()      向HTML网页提交post请求的方法,对应于HTTP的post

requests.post(url,data=None,json=None,**kwargs)

5、requests.put()      向HTML网页提交put请求的方法,对应于HTTP的put

6、requests.patch()       想HTTP网页提交局部修改请求,对应于HTTP的patch

7、requests.delete()       向HTTP页面提交删除请求,对应于HTTP的delete

 

五、HTTP协议

1、HTTP,超文本传输协议。

①HTTP是基于‘请求与响应’模式的、无状态的应用层协议。

②HTTP协议采用URL作为定位网络资源的标识。

③URL格式:http://host[:port][path]

host:合法的Internet主机域名或IP地址

post:端口号,默认端口好为80

path:请求资源的路径

④HTTP URL的理解:

URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源

 

六、HTTP协议对资源的操作

GET      请求获取URL位置的资源

HEAD      请求获取URL位置资源的响应报告,即获得该资源的头部信息

POST      请求向URL位置的资源后附加新的数据

PUT      请求向URL位置储存的一个资源,覆盖原URL位置的资源

PATCH       请求局部更新URL位置的资源,即改变该处资源的部分内容

DELETE     请求删除URL位置存储的资源

request库使用

原文:https://www.cnblogs.com/zihkj/p/12267765.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!