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读写文件操作示例程序
Dec 02 Python
Python的批量远程管理和部署工具Fabric用法实例
Jan 23 Python
Python 爬虫模拟登陆知乎
Sep 23 Python
Python实现自动上京东抢手机
Feb 06 Python
Python中的函数作用域
May 07 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
Oct 17 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
Feb 27 Python
python itchat实现调用微信接口的第三方模块方法
Jun 11 Python
python中shell执行知识点
May 06 Python
Visual Studio code 配置Python开发环境
Sep 11 Python
Python如何批量生成和调用变量
Nov 21 Python
给numpy.array增加维度的超简单方法
Jun 02 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 图片加水印与上传图片加水印php类
2010/05/12 PHP
php pki加密技术(openssl)详解
2013/07/01 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
Yii Framework框架获取分类下面的所有子类方法
2014/06/20 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
JS中style属性
2006/10/11 Javascript
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
2015/06/23 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
用python实现百度翻译的示例代码
2018/03/09 Python
Python实现的计算器功能示例
2018/04/26 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
电信营业员自我评价分享
2014/01/17 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
商务经理岗位职责
2014/07/30 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
工作保证书怎么写
2015/02/28 职场文书
浅谈Python 中的复数问题
2021/05/19 Python
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL
nginx之内存池的实现
2022/06/28 Servers