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编写的微博应用
Oct 17 Python
Python批量创建迅雷任务及创建多个文件
Feb 13 Python
Windows系统下多版本pip的共存问题详解
Oct 10 Python
Pycharm设置界面全黑的方法
May 23 Python
Python实现的从右到左字符串替换方法示例
Jul 06 Python
Python装饰器简单用法实例小结
Dec 03 Python
Python3.6中Twisted模块安装的问题与解决
Apr 15 Python
Python 窗体(tkinter)按钮 位置实例
Jun 13 Python
windows上安装python3教程以及环境变量配置详解
Jul 18 Python
python如何安装下载后的模块
Jul 03 Python
python cv2.resize函数high和width注意事项说明
Jul 05 Python
python中的被动信息搜集
Apr 29 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/11/16 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
thinkphp5+layui实现的分页样式示例
2019/10/08 PHP
破解Session cookie的方法
2006/07/28 Javascript
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
js判断undefined变量类型使用typeof
2013/06/03 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
浅谈Vuex的状态管理(全家桶)
2017/11/04 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
详解Python的Django框架中的模版继承
2015/07/16 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
基于python实现名片管理系统
2018/11/30 Python
Python中的字符串切片(截取字符串)的详解
2019/05/15 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
Python如何实现线程间通信
2020/07/30 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
报到证丢失证明
2014/01/11 职场文书
会计学专业学生的求职信范文
2014/01/27 职场文书
夜不归宿检讨书
2014/02/25 职场文书
英语老师推荐信
2014/02/26 职场文书
第二课堂活动总结
2014/05/07 职场文书
我为党旗添光彩演讲稿
2014/09/13 职场文书
2014党员批评和自我批评思想汇报
2014/09/21 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书