Python 使用强大的Requests网络库。
安装
- pip install requests
导入
- import requests
使用
- get请求
r = requests.get('https://api.github.com/events')
- post请求
r = requests.post('http://httpbin.org/post', data = {'key':'value'})
- 其他 HTTP 请求类型:put,delete,head 以及 options 又是如何的呢?都类似:
r = requests.put('http://httpbin.org/put', data = {'key':'value'})
r = requests.delete('http://httpbin.org/delete')
r = requests.head('http://httpbin.org/get')
r = requests.options('http://httpbin.org/get')
- 传URL参数
payload = {'user': 'xiaoming', 'age': '12'}
r = requests.get("http://httpbin.org/get", params=payload)
print(r.url)
# 输出:http://httpbin.org/get?user=xioaming&age=12
- 超时
r = requests.get('http://www.baidu.com', timeout=3) #秒
- 响应内容
r = requests.get('http://www.baidu.com')
r.text # 字符串方式的响应体,会自动根据响应头部的字符编码进行解码
r.status_code # 响应状态码
r.raw # 返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() 读取
r.content # 字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
r.headers # 以字典对象存储服务器响应头
r.json() # requests中内置的JSON解码器
r.raise_for_status() # 失败请求(非200响应)抛出异常
一般我们要获取的就是json格式的response
我们要获取接口数据里面data里面的数组的第二个数据的response,我们的写法就是
r.json()['data'][2]['response']