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实现堆排序的方法详解
May 03 Python
Python进阶_关于命名空间与作用域(详解)
May 29 Python
使用Python读取大文件的方法
Feb 11 Python
windows10下python3.5 pip3安装图文教程
Apr 02 Python
Python比较2个时间大小的实现方法
Apr 10 Python
python实现梯度下降算法
Mar 24 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
Python日志syslog使用原理详解
Feb 18 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
Mar 30 Python
jupyter notebook远程访问不了的问题解决方法
Jan 11 Python
python利用文件时间批量重命名照片和视频
Feb 09 Python
python中subplot大小的设置步骤
Jun 28 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生成随机密码
2015/10/30 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
Js 中debug方式
2010/02/07 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
Python聚类算法之基本K均值实例详解
2015/11/20 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
一套PHP的笔试题
2013/05/31 面试题
员工自我鉴定
2013/10/09 职场文书
电子商务专业推荐信范文
2013/12/02 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
工程主管竞聘书
2015/09/15 职场文书
党组织结对共建协议书
2016/03/23 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书