当前位置: 首页 > 后端技术 > Python

Python使用requests.session模拟登录

时间:2023-03-26 01:13:51 Python

最近开发了一套接口,写了一个Python脚本,使用requests.session模拟登录。因为每次需要获取用户信息,login都需要携带session信息,所以所有的请求都需要携带session。请求使用post方法,请求参数类型为raw方法,参数为json类型。登录界面的参数和结果如下:脚本如下:1.导入需要的第三方包#!/usr/bin/envpython3#-*-coding:utf-8-*-importrequests#importreimportjson#frombs4importBeautifulSoup2。请求头设置,设置请求参数,需要Python字典转成json字符串url='http://beanhome.com/user/login'header={"Content-Type":'application/json',"User-Agent":"Mozilla/5.0(Macintosh;IntelMacOSX10_14_5)AppleWebKit/537.36(KHTML,likeGecko)Chrome/76.0.3809.87Safari/537.36"}#要将Python字典数据转换为json,使用json.dumpsdata={"email":"common@moviebook.com","passwd":"123456"}#通过session模拟登录,每次请求都带上sessionsess=requests.Session()f=sess.post(url,data=json.dumps(数据),标题=标题)3。登录成功后打印结果print(json.loads(f.text))#soup=BeautifulSoup(f.content,"html.parser")#{'status':1,'msg':'操作成功','time':1565317698,'element':{'id':1,'uid':1,'name':'common','email':'common@moviebook.com','company':'客户公司','type':1,'title':'普通用户'}}4.打印菜单结果url='http://beanhome.com/user/getMenu'#获取menuf=sess.post(url,headers=header)print(json.loads(f.text))5.打印配置选项结果#获取配置选项url='http://beanhome.com/user/getOptionList'result=sess.post(url,headers=header)#print(json.loads(result.text))forj,kinjson.loads(result.text)['element'].items():print(j,k)