栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2.2 计算题验证码

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2.2 计算题验证码

  • 计算题验证码与普通图像验证码的区别在于增加了数学运算,需要将验证码中数学计算题的结果填到文本框中,再单击“验证”。
  • 计算题验证码的处理难点在于运算符号的识别。如果将运算符号作为常规的图像文字进行识别,那么容易出现问题,例如,经常会把乘号或倾斜的加号识别为字母x,导致难以得到正确的计算结果。
  • 超级鹰有专门识别计算题或问答题的接口,如下图所示(详见https://www.chaojiying.com/price.html)。
  • 具体到Python代码层面,只需修改前面定义的cjy()函数的代码,将其中的PostPic()函数的第二个参数改为6001,修改后代码如下,超级鹰会自动识别计算题并返回计算结果。
def cjy(): #使用超级鹰识别图像验证码的自定义函数
    chaojiying = Chaojiying_Client('账号', '密码', '932868')  # 用户中心>>软件ID
    im = open('a.png', 'rb').read()  # 打开本地图片文件,有时WIN系统须要//
    code = chaojiying.PostPic(im,6001)['pic_str']
    return code

from selenium import webdriver
browser = webdriver.Chrome()

from chaojiying import Chaojiying_Client
def cjy(): #使用超级鹰识别图像验证码的自定义函数
    chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '软件ID')  # 用户中心>>软件ID 
    im = open('a.png', 'rb').read()  # 打开本地图片文件,有时WIN系统须要//
    code = chaojiying.PostPic(im,6001)['pic_str']
    return code
    
#1.访问网址
url = r'D:workspython_crawl1《Python爬虫(进阶与进通)》代码汇总2.验证码反爬2.计算题验证码英文图像验证码index.html'
browser.get(url) #用模拟浏览器打开网页

#2. 截取验证码图片
browser.find_element_by_xpath('//*[@id="verifyCanvas"]').screenshot('a.png') #a.png是自己命令的图片名称

#3.通过超级鹰识别
result = cjy() #调用函数识别验证码,并将识别结果赋给变量result
print(result) #打印输出识别结果

# 4.输入验证码并完成验证
browser.find_element_by_xpath('//*[@id="code_input"]').send_keys(result) #模拟输入验证码
browser.find_element_by_xpath('//*[@id="my_button"]').click() #模拟单击"验证"按钮
  • 识别效果如下图所示,可以看到验证成功。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853726.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号