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正则表达式判断字符串是否是全部小写示例
Dec 25 Python
python flask中静态文件的管理方法
Mar 20 Python
Python实现针对给定单链表删除指定节点的方法
Apr 12 Python
详解Python下ftp上传文件linux服务器
Jun 21 Python
Python实现矩阵相乘的三种方法小结
Jul 26 Python
Python中实例化class的执行顺序示例详解
Oct 14 Python
利用Django模版生成树状结构实例代码
May 19 Python
Python统计分析模块statistics用法示例
Sep 06 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
Sep 25 Python
python基于opencv检测程序运行效率
Dec 28 Python
python如何提取英语pdf内容并翻译
Mar 03 Python
Python List remove()实例用法详解
Aug 02 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中几种常见安全设置详解
2010/04/06 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
JavaScript高级程序设计
2006/12/29 Javascript
js jquery做的图片连续滚动代码
2008/01/06 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
js星星评分效果
2014/07/24 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
jQuery实现表单动态添加与删除数据操作示例
2018/07/03 jQuery
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
Python按钮的响应事件详解
2019/03/04 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
python中altair可视化库实例用法
2021/01/26 Python
合作意向书范本
2014/03/31 职场文书
防灾减灾活动总结
2014/08/30 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
2021/09/25 Servers