一、前提
安装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,谢谢!!*******
