python自动化登录,python实现登录功能
超级鹰
超级鹰功能
1.超级鹰图片分类及识别录入系统
2.独立的数据及统计服务,实时与总部数据中心直连。
3.整合云录入客户端,提供更高的安全性及工作效率。
4.采用世界先进的图片处理算法以及神经网络训练系统来提供识别率
超级鹰使用步骤
1.注册:普通用户
2.登录:普通用户
3.题分查询:充值(做实验充值一块钱就够)
4.创建一个软件(身份证)
5.下载示例代码
12306官网模拟登录:
编码流程
1.使用硒打开登录页面
2.对当前硒打开的这张页面进行截图
3.对当前图片局部区域(验证码图片)进行裁剪(作用:将验证码图片和模拟登录进行一一对应。)
使用超级鹰识别验证码图片(坐标)
5.使用动作链根据坐标实现点击操作
6 录入用户名密码,点击登录按钮实现登录
编写代码
#超级鹰代码(直接拷贝即可)
导入请求
从摘要算法导入讯息摘要5
类超极影_客户端(对象):
def __init__(自身,用户名,密码,软id):
self.username=用户名
password=password.encode(utf8 )
self.password=md5(密码)。hexdigest()
self.soft_id=soft_id
self.base_params={
user: self.username,
“通道2”:自身密码,
softid: self.soft_id,
}
self.headers={
连接:保持活动,
用户代理":" Mozilla/4.0(兼容;MSIE 8.0Windows NT 5.1三叉戟/4.0),
}
def PostPic(self,im,codetype):
即时消息:图片字节
代码类型:题目类型参考http://www.chaojiying.com/price.html
params={
代码类型:代码类型,
}
参数更新(self.base_params)
files={userfile: (ccc.jpg ,im)}
r=请求。帖子( http://上传。朝吉英。net/上传/处理。 PHP ,data=params,files=files,headers=self.headers)
return r.json()
定义报告错误(self,im_id):
即时消息id:报错题目的图片身份
params={
id: im_id,
}
参数更新(self.base_params)
r=请求。帖子( http://上传。朝吉英。net/上传/报告错误。 PHP ,data=params,headers=self.headers)
return r.json()
#使用硒打开登录页面
从硒导入网驱动程序
导入时间
来自太平航运进口图片#裁剪图片模块
从selenium.webdriver导入操作链#动作链
bro=webdriver .Chrome(executable_path= ./chrome驱动程序’)
# 浏览器最大化,也可以不设置
bro.maximize_window()
#现在使用这个全球资源定位器(统一资源定位器)地址
支气管镜检查get( https://kyfw。12306 .cn/OTN/资源/登录。html’)
时间。睡眠(1)
支气管镜检查find _ element _ by _ XPath(/html/body/div[2]/div[2]/ul/Li[2]/a ).单击()#使用账号登录
时间。睡眠(1)
#保存_截图就是将当前页面进行截图且保存
兄弟.拯救_截图(《aa.png》)
#确定验证码图片对应的左上角和右下角的坐标(裁剪的区域就确定)
code _ img _ ele=bro。find _ element _ by _ XPath(//*[@ id= J-log inimg ])
位置=代码_ img _ ele。位置#验证码图片左上角的坐标x,y
打印(位置:,位置)
size=code_img_ele.size #验证码标签对应的长和宽
打印(大小:,大小)
#左上角和右下角坐标
rangle=(
int(位置[x]),int(位置[y]),int(位置[x]大小[宽度]),int(位置[y]大小[高度]))
#至此验证码图片区域就确定下来了
i=Image.open(./aa。png’)
code_img_name= ./code.png
#裁剪根据指定区域进行图片裁剪
frame=i.crop(rangle)
框架.保存(代码_ img _名称)
#将验证码图片提交给超级鹰进行识别
chaojiying=Chaojiying_Client(超级鹰用户名, 超级鹰密码, 软件ID) #用户中心软件身份生成一个替换96001
im=open(code.png , rb ).read() #本地图片文件路径来替换a.jpg有时胜利系统须要//
打印(超基英PostPic(im,9004)[pic_str])
结果=超基英PostPic(im,9004)[pic_str]
all_list=[] #要存储即将被点击的点的坐标[[x1,y1],[x2,y2]]
如果结果中有"":
list_1=result.split( )
count_1=len(list_1)
对于范围内的I(count _ 1):
xy_list=[]
x=int(list_1[i]).拆分(,)[0])
y=int(list_1[i]).拆分(,)[1])
xy_list.append(x)
xy_list.append(y)
all_list.append(xy_list)
否则:
x=int(result.split(,)[0])
y=int(result.split(,)[1])
xy_list=[]
xy_list.append(x)
xy_list.append(y)
all_list.append(xy_list)
打印(全部_列表)
#遍历列表,使用动作链对每一个列表元素对应的x,y指定的位置进行点击操作
对于全部_列表中的l:
x=l[0]
y=l[1]
行动链move _ to _ element _ with _ offset(code _ img _ ele,x,y).单击()。执行()
时间。睡眠(1)
支气管镜检查find _ element _ by _ id( J-用户名).send_keys(用户名)
时间。睡眠(1)
支气管镜检查find _ element _ by _ id( J-password ).send_keys(密码)
支气管镜检查find _ element _ by _ id( J-log in ).单击()
时间。睡眠(1)
div=bro。find _ element _ by _ id( NC _ 1 _ n1z )
#动作链
动作=动作链(兄弟)
#点击长按指定的标签
操作.单击并保持(分区)
#处理滑动模块
对于范围(5)中的我:
#执行()立即执行动作链操作
#移动偏移量(x,y):x水平方向y竖直方向
action.move_by_offset(30,0).执行()#速度为30毫米
睡眠(0.5)
#释放动作链
action.release()
运行效果:
成功登录
注意事项:
1.使用超级鹰前先看账户余额
2.运行程序前要先将自己电脑显示设置为100%,否则识别验证码一定会出错!
来源:51至
作者:低调的男孩
链接:https://博客。51 CTO。com/13760351/2518448
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。