序言
在模拟网页的表单登陆的时候,比较头疼的一个问题就是图片验证码的情况,碰到了验证码,比如像普通的文字图片类型的验证码,目前一个比较好的思路就是,通过selenium自身提供的截图功能,对指定的图片验证码区域进行截图,然后进行识别,最后填充表单进行登陆
网上不少资料关于验证码识别登陆这一块,都没有一个比较完整的可参考的代码,下面说说我的具体解决思路和过程
代码思路
1、登陆网页截图并保存
2、找到图片验证码或者验证码所在的表单或者尽可能小的区域位置,并截取出来
3、利用超级鹰识别图片验证码并解析验证码
下面是具体的代码,以“去哪儿网”,去哪儿网登录页面有验证码
步骤一,从整个网页截图中再截取带有验证码的图片
#截取表单图片
def get_form_image():
save_pc_path = 'D:\\pic\\image\\form.png'
save_pc_crop_path = 'D:\\pic\\image\\crop.png'
url = 'http://user.qunar.com/passport/login.jsp?ret=https%3A%2F%2Fwww.qunar.com%2F%3Fex_track%3Dauto_4e0d874a'
driver = webdriver.Chrome(executable_path="D:/logs/python代码/driver/chromedriver.exe")
driver.get(url)
driver.implicitly_wait(10)
# 切换登录模式为账号密码登录