web自动化-处理登录验证码


一、前提

安装selenium

安装chromedriver

pillow模块安装(处理图像的库)

 

二、下载“超级鹰”对外API

超级鹰是验证码识别平台,1块钱可以识别100次,直接百度超级鹰进入官网即可

点击开发文档,点击python,点击“点击这里下载”,下载API压缩包

 

 

 解压后如下图所示,将chaojiying.py用pycharm打开

 

 

 

如果是python3,这里需要改一下,print 后边加()

 

 

 

用户名和密码需要注册超级鹰,软件id在用户中心-->软件id可以生成,然后就可以自行测试一下啦

 

三、实例

下面是我自己实现的登录界面验证码处理,仅供参考

 

 1 from selenium import webdriver
 2 from chaojiying import Chaojiying
 3 from PIL import Image
 4 
 5 from scripts.constants import PAGE_PATH,YZM_PATH
 6 
 7 dirver = webdriver.Chrome()
 8 # 第一步:访问登录页面
 9 dirver.get(网址)
10 
11 # 第二步:定位用户名密码输入框,输入账号和密码
12 
13 # 第三步:验证码识别
14 
15 # 保存浏览器当前页面
16 dirver.save_screenshot(“page.png”)
17 # 从页面中截取验证码
18 vcode = dirver.find_element_by_xpath(验证码的定位表达式)
19 # 1、获取验证码上下左右边界坐标
20 loc = vcode.location    # location获取的是xy轴坐标
21 size = vcode.size
22 left = loc['x']
23 top = loc['y']
24 right = (loc['x'] +size['width'])
25 button = (loc['y']+size['height'])
26 # 截取页面中的验证码
27 page_pic = Image.open(”page.png“)
28 # 进行截图:参数时一个元组(left,top,right,button)
29 v_code_pic = page_pic.crop((left,top,right,button))     # v_code_pic就是验证码
30 v_code_pic.save(”yzm.png“)      # 保存验证码
31 # 使用超级鹰识别验证码中的内容
32 yz = Chaojiying(username='18301603634', password='mydestiny', soft_id='902340')
33 
34 with open(“yzm.png”, 'rb')as f:
35     pic = f.read()
36 # 得到验证码识别的结果
37 result = yz.post_pic(pic, codetype=1902)  
38 # 得到的结果中,pic_str就是识别后的验证码
39 res = result['pic_str']
40 print(res)
41 # 第四步:定位验证码输入框,输入验证码
42 # 第五步:点击登录
43 
44 # 如果验证码识别失败,可查看result字典中的err_str报错信息

 



至此,就可以登录带有验证码的系统啦,需要注意的是,超级鹰需要购买哦,不购买会识别失败



*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/urbbr,谢谢!!******* 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM