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删除指定目录下过期文件的2个脚本分享
Apr 10 Python
Python数据库的连接实现方法与注意事项
Feb 27 Python
Python实现中文数字转换为阿拉伯数字的方法示例
May 26 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
Jul 24 Python
Python File readlines() 使用方法
Mar 19 Python
对python以16进制打印字节数组的方法详解
Jan 24 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
用python给自己做一款小说阅读器过程详解
Jul 11 Python
openCV提取图像中的矩形区域
Jul 21 Python
基于python实现操作redis及消息队列
Aug 27 Python
Python filter()及reduce()函数使用方法解析
Sep 05 Python
python调试工具Birdseye的使用教程
May 25 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
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
2017/09/01 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
python采用requests库模拟登录和抓取数据的简单示例
2014/07/05 Python
Python的Django框架使用入门指引
2015/04/15 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
python将回车作为输入内容的实例
2018/06/23 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
降消项目实施方案
2014/03/30 职场文书
公司合作协议范文
2014/10/01 职场文书
批评与自我批评发言稿
2014/10/15 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
2015年民主生活会发言材料
2014/12/15 职场文书
如何计划开一家便利店?
2019/07/31 职场文书