- 安装pip
- Sudo easy_install pip
- 安装requests
- 切换到root用户 sudo -i
- Pip install requests
- 引入requests模块 import requests
- r=Requests.get() requests.post() 请求网页,返回一个响应对象
- R.text是一个字符串,r.json()返回的是一个列表[]
- r=requests.get(‘https://api.github.com/events’,stream=True) r.raw通过设置stream为真来获取服务器响应的原始套接字
- 请求格式r=requests.xxx(url)
- Post data={}设置传递参数
- Get Params={}传递参数
- headers={}设置请求头
- R.url 请求url
- R.text 返回的数据,字符串格式
- r.encoding=‘’设置r.text的编码
- R.content以二进制形式请求响应体
- r.json() json 解码解码之后,是一个元组或者字典,失败抛出异常
- 或者使用json模块下的函数
- Json.dumps() 对数据进行编码,
python | json |
dict | object |
list, tuple | array |
str | String |
int, float, int- & float-derived Enums | Number |
TRUE | TRUE |
FALSE | FALSE |
none |
-
-
- Null
- Json.loads()对数据进行解码,
-
Json | Python |
Object | Dict |
Array | List |
String | Str |
Number int | Int |
number (real) | Float |
TRUE | TRUE |
FALSE | FALSE |
Null | None |
-
- 处理json文件
- with open(‘data.json’,’w’) as f:
- Json.dump(data,f)
- With open(‘data.json’,’r’) as f:
- Data=json.load(f)
- with open(‘data.json’,’w’) as f:
- R.raw返回服务器原始套接字响应
- 处理json文件
- post
- 参数data={}/() 也可以是元组列表
- 通过files 上传文件requests.post(url,file={‘file’:open(‘repoort.xls’,’rb’)})
- post和get都会有响应状态码
- R.status_code获取状态码,请求成功200 requests.codes.ok
- 使用r.raise_for_status()来抛出异常
- requests.get(url,timeout=0.001)超时设定只对连接过程有效,在指定时间没有应答则抛出异常
- R.headers 查看响应头,返回一个字典类型,可以通过r.headers[‘索引值’]或r.headers.get(‘索引值’)获取其中一个元素的值
- 获取相应中的cookies r.cookies[‘索引值’]
- 请求中设置cookies requests.get(url,cookies={‘’:’’,’’:’’})
- R.history是一个response对象的列表
- Json.dumps(data)将一个python数据结构转换为json
- Json.loads(json_str)将一个json数据转换为python数据结构
- 注意使用前需要引入模块 import json
- 错误和异常
- 遇到网络问题,requests会抛出ConnectionError异常
- 如果http请求了不成功的状态码,r.raise_for_status()会抛出一个HTTPErrror异常
- 请求超时返回一个timeout异常
- 请求超过了设定的最大重定向次数会抛出一个toolManyRedirectus异常
- 所有的异常都继承requests.exceptions.RequestsException