python使用requests.session模拟登录
作者:望月明 发布时间:2022-09-12 19:17:24
最近开发一套接口,写个Python脚本,使用requests.session
模拟一下登录.
因为每次需要获取用户信息,登录需要带着session信息,所以所有请求需要带着session。
请求使用post方式,请求参数类型为raw方式,参数为json类型。
登录接口参数和结果如下:
脚本如下:
1. 引入需要的第三方包
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import requests
# import re
import json
# from bs4 import BeautifulSoup2. 请求头设置,设置请求参数, 需要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模拟登录,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://segmentfault.com/a/1190000020019510


猜你喜欢
- 一、写在前面从学 Python 的第一天起,我就知道了使用 pip 命令来安装包,从学习爬虫到学习 Web 开发,安装的库越来越多,从 re
- 如果有一个字符串 eg: "sun,star,moon,clouds",想要在MS SQL中根据给定的分隔符',
- 网站上的Banner条,是网站用来作为盈利或者是发布一些重要的信息的工具。但是它又不能作为网页的主要内容,因为它的主要目的是吸引人的注意力,
- create procedure test_tran as set xact_abort on -----用@@error判断,对于严重的错
- MaxDB是MySQL AB公司通过SAP认证的数据库。MaxDB数据库服务器补充了MySQL AB产品系列。某些MaxDB特性在MySQL
- 导入模块from bs4 import BeautifulSoupsoup = BeautifulSoup(html_doc,"h
- 日志Yii提供了一个高度自定义化和高扩展性的日志框架。根据使用场景的不同,你可以很容易的对各种消息就行记录、过滤、合并,比如说文本文件,数据
- 导航栏是一个很好的功能,是Bootstrap 网站的一个突出特点。导航栏是响应式元组件就,作为应用程序或网站的导航标题。导航栏在移动设备的视
- 01 并行复制的概念 在MySQL的主从复制架构中,主库上经常会并发的执行很多SQL,只要这些SQL没有产生锁等待,
- 一、Python 下载Python是运行的环境,必不可少,如果你是Linux系统的话,不用安装,自带了Python。首先我们打开浏览器搜索P
- 远程登陆SQLServer (2014)数据库,供大家参考,具体内容如下两台电脑,同一个局域网内,IP同一网段配置:Computer1: W
- 起因说起来录制视频,我们可能有很多的软件,但是比较坑的是,好像很少的软件支持能够同时录制两个摄像头的视频,于是我们用python自己写一个。
- 一年中秋至 又见圆月时导语假设农历八月十五,程序员错过了今年的中秋圆月。▼程序员的苦只有他们寄几知道bug,bug,bug,bug,bug,
- 如何正确显示数据库里同时存在的GB码和BIG5码? Public Function CheckBIG(strS
- 文章开始先讲下交叉验证,这个概念同样适用于这个划分函数1.交叉验证(Cross-validation)交叉验证是指在给定的建模样本中,拿出其
- 安装:pip install wave在wav 模块中 ,主要介绍一种方法:getparams(),该方法返回的结果如下:_wave_par
- javascript实现翻页效果:<html> <head> <title>上下翻页看 - aspxho
- Javascript刷新页面的几种方法: 1. history.go(0) 2. location.reload() 3. location
- 前言:要翻转图像,我们需要使用pygame.transform.flip(Surface, xbool, ybool) 方法,该方法被调用来
- 前言最近接手了一个项目,由于之前为了快速开发,没有做代码检查。为了使得代码更加规范以及更易读,所以就要eslint上场了。安装依赖安装依赖有