Python的requests包中使用session管理cookie
使用session管理cookie,本质是从requests.session()获取session,然后使用session发送验证码数据,然后cookie等数据就被存储到session中了。在次使用该cookie发送请求的时候就会自带cookie,前一次请求的cookie结果被存储。
# 读入request 包 import requests
# 编写参数 # 登录请求URL login_req_url = "http://127.0.0.1/index.php?m=Home&c=User&a=do_login&t=0.26704270445050515";# 登录参数 login_data_info = {"username": "13800138006","password": "123456","verify_code": "8888", }
# 获取登录验证码请求get_verigy_code_url = "http://127.0.0.1/index.php?m=Home&c=User&a=verify&r=0.4507740559733051"
# 发送获取验证码请求,获取session session_send_data = requests.session()result_response_data = session_send_data.get(url=get_verigy_code_url); print(result_response_data.content)
# 获取session,使用session发送登录请求 login_sussces = session_send_data.post(url=login_req_url, data=login_data_info,headers={"Content-Type": "application/x-www-form-urlencoded"}); print("使用session登录: ", login_sussces.content)
# 使用cookie 登录 result_response_data = requests.get(url=get_verigy_code_url);cookie_test = result_response_data.cookies print(cookie_test) cookie_login = requests.post(url=login_req_url, data=login_data_info,headers={"Content-Type": "application/x-www-form-urlencoded"},cookies=cookie_test) print("使用cookie登录: ", cookie_login.content)
- 运行结果
- 完整代码
# 读入request 包 import requests# 编写参数 # 登录请求URL login_req_url = "http://127.0.0.1/index.php?m=Home&c=User&a=do_login&t=0.26704270445050515";# 登录参数 login_data_info = {"username": "13800138006","password": "123456","verify_code": "8888", }# 获取登录验证码请求get_verigy_code_url = "http://127.0.0.1/index.php?m=Home&c=User&a=verify&r=0.4507740559733051" # 发送获取验证码请求,获取session session_send_data = requests.session()result_response_data = session_send_data.get(url=get_verigy_code_url); print(result_response_data.content)# 获取session,使用session发送登录请求 login_sussces = session_send_data.post(url=login_req_url, data=login_data_info,headers={"Content-Type": "application/x-www-form-urlencoded"}); print("使用session登录: ", login_sussces.content)# 使用cookie result_response_data = requests.get(url=get_verigy_code_url);cookie_test = result_response_data.cookies print(cookie_test) cookie_login = requests.post(url=login_req_url, data=login_data_info,headers={"Content-Type": "application/x-www-form-urlencoded"},cookies=cookie_test) print("使用cookie登录: ", cookie_login.content)