python使用requests.session模拟登录


Posted in Python onAugust 09, 2019

最近开发一套接口,写个Python脚本,使用requests.session模拟一下登录.

因为每次需要获取用户信息,登录需要带着session信息,所以所有请求需要带着session。

请求使用post方式,请求参数类型为raw方式,参数为json类型。

登录接口参数和结果如下:

 python使用requests.session模拟登录

脚本如下:

1. 引入需要的第三方包

#! /usr/bin/env python3
# -*- coding: utf-8 -*-

import requests
# import re
import json
# from bs4 import BeautifulSoup

2. 请求头设置,设置请求参数, 需要Python字典转为json字符串

url = 'http://beanhome.com/user/login'
header = {
    "Content-Type": 'application/json',
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"
  }
# Python字典数据转为json,需要使用json.dumps
data = {
    "email": "common@moviebook.com",
    "passwd": "123456"
  }
# 通过session模拟登录,每次请求带着session
sess = requests.Session()
f = sess.post(url, data=json.dumps(data), headers=header)

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'
# 获取菜单
f = 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))
for j,k in json.loads(result.text)['element'].items():
  print(j,k)

总结

以上所述是小编给大家介绍的python使用requests.session模拟登录,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python使用 HTMLTestRunner.py生成测试报告
Oct 20 Python
python3爬取各类天气信息
Feb 24 Python
Python实现的简单读写csv文件操作示例
Jul 12 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
Nov 06 Python
Falsk 与 Django 过滤器的使用与区别详解
Jun 04 Python
线程安全及Python中的GIL原理分析
Oct 29 Python
检测tensorflow是否使用gpu进行计算的方式
Feb 03 Python
python实现打砖块游戏
Feb 25 Python
python deque模块简单使用代码实例
Mar 12 Python
在主流系统之上安装Pygame的方法
May 20 Python
如何利用python发送邮件
Sep 26 Python
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
Apr 03 Python
如何在Cloud Studio上执行Python代码?
Aug 09 #Python
python切片(获取一个子列表(数组))详解
Aug 09 #Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 #Python
一行python实现树形结构的方法
Aug 09 #Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 #Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 #Python
Python Django 命名空间模式的实现
Aug 09 #Python
You might like
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
Python 第一步 hello world
2009/09/25 Python
Python Queue模块详解
2014/11/30 Python
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
Python socket实现简单聊天室
2018/04/01 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
python3注册全局热键的实现
2020/03/22 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
英文简历中的自我评价
2013/10/06 职场文书
活动总结报告范文
2014/05/04 职场文书
机关作风建设整改方案
2014/10/27 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
客房服务员岗位职责
2015/02/09 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
办公室日常管理制度
2015/08/04 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android
baselines示例程序train_cartpole.py的ImportError
2022/05/20 Python