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 相关文章推荐
在Django框架中运行Python应用全攻略
Jul 17 Python
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
python中requests使用代理proxies方法介绍
Oct 25 Python
用Python编写一个简单的CS架构后门的方法
Nov 20 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
在python里协程使用同步锁Lock的实例
Feb 19 Python
利用Python半自动化生成Nessus报告的方法
Mar 19 Python
python 反编译exe文件为py文件的实例代码
Jun 27 Python
python中的&&及||的实现示例
Aug 07 Python
Django自定义模板过滤器和标签的实现方法
Aug 21 Python
解决Python中回文数和质数的问题
Nov 24 Python
python中seaborn包常用图形使用详解
Nov 25 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
人大复印资料处理程序_查询篇
2006/10/09 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
javascript中关于执行环境的杂谈
2011/08/14 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
简单易用的倒计时js代码
2014/08/04 Javascript
JS往数组中添加项性能分析
2015/02/25 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
vue 2.0组件与v-model详解
2017/03/27 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
深入了解js原型模式
2019/05/30 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
python引入不同文件夹下的自定义模块方法
2018/10/27 Python
python操作cfg配置文件方式
2019/12/22 Python
Python dict的常用方法示例代码
2020/06/23 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
租车协议书范本
2014/04/22 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
中学校园广播稿
2015/08/18 职场文书
手残删除python之后的补救方法
2021/06/26 Python
redis数据结构之压缩列表
2022/03/21 Redis