python实现自动登录后台管理系统
作者:masserd 发布时间:2021-05-26 13:40:48
标签:python,自动登录,管理系统
本文实例为大家分享了python实现自动登录后台管理系统的具体代码,供大家参考,具体内容如下
首先感谢下网络上的各位大神和博主,通过学习各位大神的文章,才实现了该脚本
①首先浏览器运行真是系统通过fiddler抓包,抓取到登录地址(后面的地址和头部信息等都是通过fiddler抓取的)
并获取头信息,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)
来源:https://blog.csdn.net/zoulonglong/article/details/79559166?utm_source=blogxgwz8


猜你喜欢
- 介绍图像分类器通常在训练更多的图像时表现得更好。在图像分类模型中,一个常见的问题是,模型不能正确地对图像进行分类,只是因为它没有针对同一图像
- 同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月My
- 代码如下: <!--[if IE 6]><script type="text/javascript"&
- 什么是特殊方法?当我们在设计一个类的时候,python中有一个用于初始化的方法$__init__$,类似于java中的构造器,这个就是特殊方
- Python 正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python 自1.5版本起增加了
- 1. 卡住是怎么办按照以下步骤, 前提是你需要懂点英文:尽可能自己想办法解决仔细阅读相关文档, 确保不错过任何相关内容在Google, 百度
- 现在使用CSS网页布局,摒弃了传统Table表格布局的模式,但是Table表格在网页中还是少不了的,因为当需要输出表格类数据时,就应该使用表
- BluePrint是一个非常成熟也非常流行的CSS框架,很多网站和wordpress基于Blueprint搭建前端结构。最近,bluepri
- 准备工作我准备了两个表格数据,以此展示本期的表格的合并的工作。数据示例如下:表格1表格2接着将这两个表格的数据分别导入python中,导入代
- 语法: ROW_NUMBER() OVER([ <partition_by_clause>] <order_by_clau
- 一、官方解释:1.v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件 * 和子组件适当地被销毁和重建。2.v-if 也是
- MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理
- 本文实例讲述了python计算牛顿迭代多项式的方法。分享给大家供大家参考。具体实现方法如下:''' p = eval
- 关于数据库的逻辑设计,是一个很广泛的问题。本文主要针对开发应用中遇到在MS SQL Server上进行表设计时,对表的主键设计应注意的问题以
- github demo: github地址闲聊背景本文主要以 vue-cli3 搭建的项目为例,来聊一下如何在项目中更优雅的使用 svg 。
- 前言我们实战经常会遇到以下几个问题:1、遇到一个利用步骤十分繁琐的漏洞,中间错一步就无法利用2、挖到一个通用漏洞,想要批量刷洞小赚一波,但手
- 前言最近在python里面用json读取json文件,可是老是不成功,特此记录一下。预备知识:def load(fp, cls=None,
- 第一步,去百度地图开发者申请密钥。1.申请密钥(百度地图开放平台-->开发文档-->web开发-->JavaScript&
- 本文实例讲述了Python实现的简单hangman游戏。分享给大家供大家参考。具体如下:#!/usr/bin/env pythonimpor
- 在go语言中iota比较特殊,是一个被编译器修改的常量,在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次