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写的一个文本编辑器
Jan 23 Python
Python单链表的简单实现方法
Sep 23 Python
python getopt详解及简单实例
Dec 30 Python
Python可变参数用法实例分析
Apr 02 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
Python中@property的理解和使用示例
Jun 11 Python
PyQt5 加载图片和文本文件的实例
Jun 14 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
Python Django 前后端分离 API的方法
Aug 28 Python
python程序 创建多线程过程详解
Sep 23 Python
python神经网络编程实现手写数字识别
May 27 Python
pip install命令安装扩展库整理
Mar 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
2014/04/25 PHP
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
php面试中关于面向对象的相关问题
2019/02/13 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
JavaScript中Form表单技术汇总(推荐)
2016/06/26 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
js常见遍历操作小结
2019/06/06 Javascript
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
python if not in 多条件判断代码
2016/09/21 Python
python实现杨辉三角思路
2017/07/14 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
使用Python来开发微信功能
2018/06/13 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
公益广告语集锦
2014/03/13 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
医院党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年党员整改措施
2014/10/24 职场文书
2014年乡镇妇联工作总结
2014/12/02 职场文书
南湾猴岛导游词
2015/02/09 职场文书
开学典礼校长致辞
2015/07/29 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python
Vue+Flask实现图片传输功能
2022/04/01 Vue.js