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写的服务监控程序实例
Jan 31 Python
Python脚本实现格式化css文件
Apr 08 Python
TensorFlow saver指定变量的存取
Mar 10 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
Python使用paramiko操作linux的方法讲解
Feb 25 Python
Python创建字典的八种方式
Feb 27 Python
Python argparse模块应用实例解析
Nov 15 Python
使用Python第三方库pygame写个贪吃蛇小游戏
Mar 06 Python
记录模型训练时loss值的变化情况
Jun 16 Python
Python OpenCV读取中文路径图像的方法
Jul 02 Python
python使用smtplib模块发送邮件
Dec 17 Python
python和anaconda的区别
May 06 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
快速配置PHPMyAdmin方法
2008/06/05 PHP
php获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
thinkphp修改配置进入默认首页的方法
2017/02/07 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
php给数组赋值的实例方法
2019/09/26 PHP
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
2014/07/09 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
2017/06/29 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
python模拟表单提交登录图书馆
2018/04/27 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
python连接mysql有哪些方法
2020/06/24 Python
Python中pass的作用与使用教程
2020/11/13 Python
医学生自荐信范文
2013/12/03 职场文书
给领导的检讨书
2014/02/16 职场文书
政风行风整改报告
2014/11/06 职场文书
2014年领班工作总结
2014/11/25 职场文书
先进员工事迹材料
2014/12/20 职场文书
合作意向协议书
2015/01/29 职场文书
员工年度工作总结2015
2015/05/18 职场文书