python自动化登录,python实现登录功能

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: