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 爬虫图片简单实现
Jun 01 Python
django实现登录时候输入密码错误5次锁定用户十分钟
Nov 05 Python
Python使用正则表达式获取网页中所需要的信息
Jan 29 Python
Python+PIL实现支付宝AR红包
Feb 09 Python
python多线程之事件Event的使用详解
Apr 27 Python
Tornado Web Server框架编写简易Python服务器
Jul 28 Python
使用 Python 处理 JSON 格式的数据
Jul 22 Python
Django框架表单操作实例分析
Nov 04 Python
Python写出新冠状病毒确诊人数地图的方法
Feb 12 Python
python绘制趋势图的示例
Sep 17 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
Sep 21 Python
python 动态渲染 mysql 配置文件的示例
Nov 20 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入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
PHP防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
smarty高级特性之对象的使用方法
2015/12/25 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
可编辑下拉框的2种实现方式
2014/06/13 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
JavaScript利用Date实现简单的倒计时实例
2017/01/12 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
Python自动化测试工具Splinter简介和使用实例
2014/05/13 Python
深入理解Python分布式爬虫原理
2017/11/23 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
python tkinter 设置窗口大小不可缩放实例
2020/03/04 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
python打开文件的方式有哪些
2020/06/29 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
一套PHP的笔试题
2013/05/31 面试题
水电工岗位职责
2014/02/12 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
师范生自我鉴定
2014/03/20 职场文书
开业典礼主持词
2014/03/21 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
公司感谢信范文
2015/01/22 职场文书
篮球赛新闻稿
2015/07/17 职场文书
CSS实现两列布局的N种方法
2021/08/02 HTML / CSS