requesets.request(method,url,kwargs) request 方法有三个参数,method url kwargs
method: 请求方式,对应 GET/HEAD/POST/PUT/PATCH/delete/OPTIONS 7种,大小写严格
前六种介绍过了
OPTIONS 是获取服务器与客户端之间通信参数,与获取资源并不直接相关,用的比较少
requesets.request('GET',url,**kwargs)
requesets.request('HEAD',url,**kwargs)
requesets.request('POST',url,**kwargs)
requesets.request('PUT',url,**kwargs)
requesets.request('PATCH',url,**kwargs)
requesets.request('delete',url,**kwargs)
requesets.request('OPTIONS',url,**kwargs)
url: 指获取 url 链接
**kwargs: 控制访问参数,共13 个, 可选项
13个参数分别如下
1、params: 字典或者字节序列,作为参数增加到 url 中,
使访问链接中增加一些参数,服务器根据参数筛选一些资源,
返回来获取指定的内容
kv = {"key1":"value1","key2":"value2"}
r = requests.request("GET","http://python123.ifno/ws",params=kv)
print(r.url) #会打印: http://python123.ifno/ws?key1=value1&key2=value2
2、data: 字典、字节序列或者文件对象,作为 Request 的内容,
把对象放在 url 链接对应的位置作为数据来存储
kv = {"key1":"value1","key2":"value2"}
r = requests.request("POST","http://python123.ifno/ws",data=kv)
body = "主要内容"
r = requests.request("POST","http://python123.ifno/ws",data=body)
3、json: JSON格式的数据,作为 Request 的内容
kv = {"key1":"value1","key2":"value2"}
r = requests.request("POST","http://python123.ifno/ws",json=kv)
4、headers: 字典,HTTP定制头,想服务器发送请求,服务器看到的是 Chrme10
可以模仿Chrome10向服务器发起访问,服务器会认为是Chrome10浏览器
hd = {"user-agent":"Chrome/10"}
r = requests.request("POST","http://python123.ifno/ws",headers=hd)
5、cookes: 字典或者CookieJar,Request 中的cookie,request库的高级功能
6、auth: 元组,支持HTTP认证功能,request库的高级功能
7、files: 字典类型,传输文件,向服务器传输文件
fs = {"file":open("data.xls","rb")}
r = requests.request("POST","http://python123.ifno/ws",files=fs)
8、timeout: 设定超时时间,秒位单位
如果在设定时间内没有返回内容,那么会有一个 timeout异常
r = requests.request("GET","http://python123.ifno/ws",timeout=10)
9、proxies: 字典类型,设定访问代理服务器,可以增加登录认证
有效隐藏用户抓取网页时的ip地址,有效被防止爬虫你追踪
pxs = {"http":"http://user:[email protected]:1234","https":"https://10.10.10.1:4321"}
r = requests.request("GET","http://python123.ifno",proxies=pxs)
10、allow_redirects: True/False,默认为True ,重定向开关,允不允许对url进行重定向
11、stream: True/False ,默认为 True ,获取内容立即下载开关,默认时允许
12、verify: True/False ,默认为 True ,认证SSL证书开关
13、cert: 本地SSL证书路径
==============================================================================
requests.get(url,params=None,keargs) # get 方法有三个参数,url params kwargs
url: 拟获取页面的 url 链接
params: url 中的额外参数,字典或者字节流格式,可选
**kwargs: 12个控制访问的参数,(request 方法控制访问参数中除了 params 以外的12 种参数)
======
requests.head(url,kwargs) # head 方法有两个参数,url kwargs
url: 拟获取页面的 url 链接
**kwargs: 13 个控制访问的参数(与 request 方法的控制访问参数一样)
======
requests.post(url,data=None,json=None,kwargs) # post 方法有四个参数,url data json kwargs
url: 拟更新页面的url 链接
data: 字典、字节序列或文件,Request 的内容(和 request 方法中控制访问参数中的 data 一样)
json: JSON格式的数据,Request的内容(和 request 方法中控制访问参数中的 json 一样)
**kwargs: 11个控制访问的参数(request 方法控制访问参数中除了 data和json 以外的11个参数一样)
======
requests.put(url,data=None,kwargs) # put 方法有三个参数,url data kwargs
url: 拟更新页面的url 链接
data: 字典、字节序列或文件,Request 的内容(和 request 方法中控制访问参数中的 data 一样)
**kwargs: 12个控制访问的参数(request 方法控制访问参数中除了 data 以外的12个参数一样)
======
requests.patch(url,data=None,kwargs) # patch 方法有三个参数,url data kwargs
url: 拟更新页面的url 链接
data: 字典、字节序列或文件,Request 的内容(和 request 方法中控制访问参数中的 data 一样)
**kwargs: 12个控制访问的参数(request 方法控制访问参数中除了 data 以外的12个参数一样)
======
requests.delete(url,kwargs) # delete 方法有两个参数,url kwargs
url: 拟删除页面的url 链接
**kwargs: 13个控制访问的参数(与 request 方法控制访问参数一样)
======
这样设计时因为后六种方法,的一两种控制访问参数比较常用,
所以就放在了函数的默认参数里面,后面的可选参数比较少用
get 方法时所有方法里面最常用的方法,因为向服务器提交信息和传输资源的时候时严格受限的
服务器不会允许无限制的提交信息和传输资源