python实现自动登录后台管理系统


Posted in Python onOctober 18, 2018

本文实例为大家分享了python实现自动登录后台管理系统的具体代码,供大家参考,具体内容如下

首先感谢下网络上的各位大神和博主,通过学习各位大神的文章,才实现了该脚本

①首先浏览器运行真是系统通过fiddler抓包,抓取到登录地址(后面的地址和头部信息等都是通过fiddler抓取的)

python实现自动登录后台管理系统

并获取头信息,header信息里面Accept-Encoding: gzip, deflate去掉吧,免得后面提取页面的url时无法解码,通过代码实现后,这个时候回返回html文本,从文本里面获取下一步要进入的系统的地址,这个地址已经附上cookie即token了,只有经过了这一步请求,才能进行下一步的对系统里面的内容进行操作(之前没有经过这一步,就进行了具体操作的url请求,总是返回重定位到登录界面)。

②然后再进行这个带token的url的请求

③请求完成后即可进行想要的操作了

下面直接上代码,有一些信息是公司的信息,我直接屏蔽换成通用字符串

# coding=utf-8
import urllib.request
import urllib
import http.cookiejar
from database_functions import *
import re
 
 
# 正则表达式匹配规则
regx = re.compile(r'(.*)(href=\")(.*)(\"\starget=.*bms.*)')
 
 
# 定义一个方法用于生成请求头信息,处理cookie
def getopener(head):
 
  cj = http.cookiejar.CookieJar()
  pro = urllib.request.HTTPCookieProcessor(cj)
  opener = urllib.request.build_opener(pro)
  header = []
  for key, value in head.items():
    elem = (key, value)
    header.append(elem)
  opener.addheaders = header
  return opener
 
 
def modify_appeal_status_pass(phone):
 
  index, status = get_appeal_by_phone(phone)
  # 封装头信息,伪装成浏览器
  header = {
    'Connection': 'Keep-Alive',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Accept': 'application/json, text/javascript,text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest',
    'Host': 'xxx.xxx.xxx',
  }
 
  # 登录地址
  login_url = 'http://xxx.xxx.xxx/xx-xxx/login.do'
 
  # request封装cookie和头信息
  opener = getopener(header)
  urllib.request.install_opener(opener)
 
  username = '***' # 你的用户名
  password = '***' # 你的密码
  postdict = {
    'username': username,
    'password': password
  }
 
  # 登录请求
  postdata = urllib.parse.urlencode(postdict).encode('utf-8')
  login_response = urllib.request.Request(login_url, data=postdata, headers=header) #登录系统
  login_webpage = urllib.request.urlopen(login_response)
  # 返回的html页面
  login_data = login_webpage.read().decode()
 
  # 获取系统地址
  bms_url = regx.findall(login_data)[0][2]
  # 请求xxxx
  bms_response = urllib.request.Request(bms_url, headers=header)
  bms_webpage = urllib.request.urlopen(bms_response)
  # 返回的系统后台页面
  bms_data = bms_webpage.read().decode()
 
  # 对xx状态进行修改
  update_url = "http://xxx.xxx.xxx/xxx/xxx/xxx/xxx/{index}".format(index=index)
  update_response = urllib.request.Request(update_url, headers=header)
  update_webpage = urllib.request.urlopen(update_response)
  update_data = update_webpage.read().decode()
  print(update_data)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的with...as用法介绍
May 28 Python
Python自动扫雷实现方法
Jul 25 Python
Python模块包中__init__.py文件功能分析
Jun 14 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
Python操作Oracle数据库的简单方法和封装类实例
May 07 Python
Python 字符串转换为整形和浮点类型的方法
Jul 17 Python
浅谈python中真正关闭socket的方法
Dec 18 Python
python3射线法判断点是否在多边形内
Jun 28 Python
django中间键重定向实例方法
Nov 10 Python
python hash每次调用结果不同的原因
Nov 21 Python
python执行js代码的方法
May 13 Python
Django+Celery实现定时任务的示例
Jun 23 Python
python 对给定可迭代集合统计出现频率,并排序的方法
Oct 18 #Python
python实现简单登陆系统
Oct 18 #Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 #Python
python字典值排序并取出前n个key值的方法
Oct 17 #Python
Python中创建二维数组
Oct 17 #Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 #Python
Python3.6简单的操作Mysql数据库的三个实例
Oct 17 #Python
You might like
PHP 开发工具
2006/12/06 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
php 生成唯一id的几种解决方法
2013/03/08 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
PHP简单验证码功能机制实例详解
2019/03/27 PHP
offsetParent 算法分析
2010/04/05 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
纯JS实现表单验证实例
2016/12/24 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
TensorFlow损失函数专题详解
2018/04/26 Python
Python实现合并excel表格的方法分析
2019/04/13 Python
python 字典访问的三种方法小结
2019/12/05 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
详解python logging日志传输
2020/07/01 Python
python爬虫工具例举说明
2020/11/30 Python
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
详解html5 canvas常用api总结(二)--绘图API
2016/12/14 HTML / CSS
自我评价范文点评
2013/12/04 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
水电站项目建议书
2014/05/12 职场文书
违反交通法规检讨书
2014/09/10 职场文书
2014年个人工作总结报告
2014/11/27 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书