1.安装requests 第三方库
pip install requests
2. 发送get请求
import requests
url = 'https://httpbin.org/get'
# 发送请求,得到响应response
response = requests.get(url)
# 打印
print(response) # <Response [200]> 是个对象
print(response.text) # 获取响应数据
print(response.status_code) # 获取响应状态码 200
----output----
<Response [200]>
{
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.27.1",
"X-Amzn-Trace-Id": "Root=1-637c8229-0052ef8d2120cbcf59beb979"
},
"origin": "223.72.70.160",
"url": "https://httpbin.org/get"
}
200
3.发送post请求
url = 'https://httpbin.org/post'
resp = requests.post(url)
print(resp.text)
----output----
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "0",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.27.1",
"X-Amzn-Trace-Id": "Root=1-637c8599-14a284947eb08a0407013a86"
},
"json": null,
"origin": "223.72.70.160",
"url": "https://httpbin.org/post"
}
4.通过参数指定请求方法(通常使用)
# 自己通过参数指定请求方法
url = 'https://httpbin.org/post'
resp = requests.request(method='post',url=url)
print(resp.text)
3.请求参数传递
3.1GET和POST都可以传递URL参数
# 发送get url参数
name = 'test'
pwd = '123'
url = f'http://httpbin.org/get?username={name}&password={pwd}'
response = requests.get(url)
print(response.text)
# POST通过multipart/form-data 传递参数,GET请求不可以
data = {'username":"test","password":"123456"}
request.post(url,data=data)
# POST通过json传递参数,GET请求不可以
data = {'username":"test","password":"123456"}
requests.post(url,params=params,json=data)
4.获取响应
网络中传输的数据格式是用二进制传递,不好读取数据
# 获取文本 是字符串
resp.text
# 获取json resp.json() type是字典
data = response.json()
#print(data['args']['password']
# 获取二进制数据
resp.context
5. 自动处理session鉴权(一般使用)
例子:课堂派
import requests
def login_with_session():
# 初始化一个 session 对象,用户创建会共享,同一浏览器可以共享cookie,自动传递cookie
s = requests.Session()
# 第一个接口
login_url = 'https://v4.ketangpai.com/UserApi/login'
data = {
"email": "xxx",
"password": "xx",
"remember": "0"
}
# 发送请求
s.post(login_url, data)
# 第二个接口
user_url = 'https://v4.ketangpai.com/UserApi/getUserInfo'
# 发送请求
r = s.get(user_url, headers={"xxx": "yyy"})
print(r.text)
login_with_session()
6.手工处理cookies鉴权
def login():
url = 'https://v4.ketangpai.com/UserApi/login'
data = {
"email": "xxx",
"password": "xx",
"remember": "0"
}
r = requests.post(url, data)
# 获取第一个接口的cookies
sid = r.cookies.get('PHPSESSID')
url = 'https://v4.ketangpai.com/UserApi/getUserInfo'
# 手工传传递cookie数据
r = requests.get(url, cookies={'PHPSESSID': sid})
print(r.text)