python+Request提取cookie
·
目录
参数
登录接口参数
查询所有课程参数

python处理cookie。
- 导入request包
-
# 导入request包 import requests

-
- 编写登录请求的查询参数
-
# 编写请求 # 登录参数 login_param = { "phone":"15321919666", "password":"123456", } # URL地址 url_address_test = "http://www.edu2.com:8080/ssm_web/user/login" 
-
- 接受响应数据
-
# result_data_info 接受响应数据 result_data_info = requests.post(url_address_test,data=login_param);

-
- 编写查询课程的url,并且接受
-
# 查询课程URL query_all_course_address = "http://www.edu2.com:8080/ssm_web/course/findAllCourse" result_data_info = requests.post(query_all_course_address);

-
- 打印结果
-
# 判断是否是JSON数据 try: print(result_data_info.json()) print("处理成功") except ValueError: print("返回结果不是JSON格式") print("响应内容是:") print(result_data_info.content) 
-
- 运行程序
- 分析结果
- 在没有使用cookie的请求下

- 可以看到,服务器出现了错误
- 并且没有返回JSON数据
- 正常情况下这个接口会返回json数据
- 这个是POSTMAN返回结果
- Postnman可以自己管理cookie
- 这个是Jmeter中的返回结果
- Jmeter可以使用Http Cookie 管理器
- 或者自己提取
- 分析得出,发送请求的时候没有携带cookie和一些其他的参数
- 这个是POSTMAN返回结果
-
提取cookie
-
# 提取登录请求的cookie login_cookie_info = result_data_info.cookies print(" 登录接口中的cookie: ",login_cookie_info) 
-
-
使用json模块提取token
-
# 导入json模块 import json
- json数据转化为字符串
-
# json数据转化为字符串 json_str_data = json.dumps(json_data); print("json数据转化为字符串",json_str_data) 
-
-
提取token
-
login_token_info = json.loads(json_str_data)['content']['access_token']; print(login_token_info)

-
- 发送查询课程请求
-
# 查询课程URL query_all_course_address = "http://www.edu2.com:8080/ssm_web/course/findAllCourse" result_data_info = requests.post(url=query_all_course_address, cookies=login_cookie_info, headers={"content-type":"application/json;","Authorization":login_token_info}, json={}); 

-
-
-
正则表达式re模块提取token
- 这里使用re模块使用正则表达式去提取token
- 导入re模块
-
# 导入re模块 import re

-
-
正则表达式代码提取token
-
# 使用正则表达式提取token re_token = re.findall(pattern=r"'access_token': '(.*?)'",string=str(result_data_info.json())) print("re_token的结果:" ,re_token) 
- 正则表示式格式
- r"XXXXXXXXXXXXXX-XXXXXXX"
- . 代表任意字符
- + 左侧尽可能多的匹配
- ? 尽可能少的匹配
-
- 运行结果
- 通过数据比对,可以看到已经成功提取

-
完整代码
# 导入request包 import requests # 导入json模块 import json # 导入re模块 import re # 编写请求 # 登录参数 login_param = { "phone":"15321919666", "password":"123456", } # URL地址 url_address_test = "http://www.edu2.com:8080/ssm_web/user/login" # result_data_info 接受响应数据 result_data_info = requests.post(url_address_test,data=login_param); # 打印响应结果 print(result_data_info.json()) # 提取登录请求的cookie login_cookie_info = result_data_info.cookies print(" 登录接口中的cookie: ",login_cookie_info) json_data = result_data_info.json() # 提取token # json数据转化为字符串 json_str_data = json.dumps(json_data); print("json数据转化为字符串",json_str_data) login_token_info = json.loads(json_str_data)['content']['access_token']; print(login_token_info) print("json_token ",login_token_info) # 使用正则表达式提取token re_token = re.findall(pattern=r"'access_token': '(.*?)'",string=str(result_data_info.json())) print("re_token的结果:" ,re_token) # 查询课程URL query_all_course_address = "http://www.edu2.com:8080/ssm_web/course/findAllCourse" result_data_info = requests.post(url=query_all_course_address, cookies=login_cookie_info, headers={"content-type":"application/json;","Authorization":login_token_info}, json={}); # json={} # 判断是否是JSON数据 try: print(result_data_info.json()) print("处理成功") except ValueError: print("返回结果不是JSON格式") print("响应内容是:") print(result_data_info.content)
更多推荐



所有评论(0)