一、HTTP详解
二、Request主要方法
1、基本方法简介
总共有七个方法,这七个方法最后都是使用requests.request()实现。
2、Request返回
r.encoding是从头部获取的内容编码方式(r.text的编码)
r.apparent_encoding 是根据内容分析出来的,两个都是为了表示内容编码方式(这个可能比较准确)
3、Request异常
4、基本方法的十三个参数
request.request(method, url, **kwargs)
**kwargs:控制访问的参数,均为可选项
1.params:字典或字节序列,作为参数增加到url中
2.data:字典、字节序列或文件对象,作为Request的内容
3.json:JSON格式的数据,作为Request的内容
4.headers:字典,http定制头
5.cookies:字典或cookiejar、Request中的cookie
6.auth:元组,支持HTTP认证功能
7.file:字典类型,传输文件
8.timeout:设定超时时间,秒为单位
9.proxies:字典类型,设定访问代理服务器,可以增加登录认证
10.allo_redirects:True/False,默认为True,重定向开关
11.stream:True/False,默认为True,获取内容立即下载开关
12.verify:True/False,默认为True,认证ssl证书开关
13.cert:本地ssl证书路径kv = {'key1': 'value1', 'key2': 'value2'}
// 1.params
r = requests.request('GET', 'http://python123.io/ws', params=kv)
print(r.url)
// http://python123.io/ws?key1=value1&key2=value2
// 2.data
body = '主体内容'
r = requests.request('POST', 'http://python123.io/ws', data=body)
// 3.json
kv = {'key1': 'value1'}
r = requests.request('POST', 'http://python123.io/ws', json=kv)
// 4.headers
hd = {'user-agent': 'chrome/10'} //谷歌浏览器10版本
r = requests.request('POST', 'http://python124.io/ws', headers=hd)
// 7.files
fs = {'file': open('data.xsl', 'rb')} //上传一个文件
r = requests.request('POST', 'http://python123.io/ws', files=fs)
// 8.timeout (秒)
re = requests.request('GET', 'http://www.baidu.com', timeout=10)
// 9.proxies (通过代理请求)
pxs = {'http': 'http://user:pass@10.10.10.1:1234''http': 'https://10.10.10.1:4321'}
r = requests.request('GET', 'http://www.baidu.com.com', proxies=pxs)
5. 基本方法详解
//get
requests.get(url, params=None, **kwargs)
url:拟获取页面的url链接
params: url中的额外参数,字典或字节流格式,可选
**kwargs:12个控制访问的参数//head
requests.head(url, **kwargs)
url:拟获取页面的url链接
**kwargs:13个控制访问的参数//post
requests.post(url, data=None, json=None, **kwargs)
url:拟获取页面的url链接
data:字典、字节序列或文件,Request的内容
json:json格式的数据,Request的内容
**kwargs:11个控制访问的参数//put
requests.put(url, data=None, **kwargs)
url:拟获取页面的url链接
data:字典、字节序列或文件,Request的内容
**kwargs:12个控制访问的参数//patch
requests.patch(url, data=None, **kwargs)
url:拟获取页面的url链接
data:字典、字节序列或文件,Request的内容
**kwargs:12个控制访问的参数//delete
requests.delete(url, **kwargs)
url:拟删除页面的url链接
**kwargs:13个控制访问的参数