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正则表达式 re模块使用说明
May 19 Python
跟老齐学Python之玩转字符串(1)
Sep 14 Python
Python实现将文本生成二维码的方法示例
Jul 18 Python
python保存二维数组到txt文件中的方法
Nov 15 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
对Python的交互模式和直接运行.py文件的区别详解
Jun 29 Python
Django 1.10以上版本 url 配置注意事项详解
Aug 05 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
Python程序暂停的正常处理方法
Nov 07 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
Django如何重置migration的几种情景
Feb 24 Python
Python实现简单的2048小游戏
Mar 01 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使用eAccelerator的API开发详解
2013/06/09 PHP
ThinkPHP文件缓存类代码分享
2015/04/22 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
jQuery基础知识小结
2014/12/22 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
在python中bool函数的取值方法
2018/11/01 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
Python使用Chrome插件实现爬虫过程图解
2020/06/09 Python
html5指南-3.如何实现html元素拖拽功能
2013/01/07 HTML / CSS
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
妇产科护士自我鉴定
2013/10/15 职场文书
总经理任命书范本
2014/06/05 职场文书
工商管理自荐书
2014/07/06 职场文书
大学生找工作求职信
2014/07/09 职场文书
财务部岗位职责
2015/02/03 职场文书
2016年国培研修日志
2015/11/13 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server