利用selenium+打码工具实现自动识别验证码并登录

哈喽,在这个寂寞的下午,看到同样寂寞的这篇无聊的文章,赏个脸,虽然很low,但别喷。

因为太丑,在这个既不能上班又没有女朋友陪伴的寂寞日子了,看看电子书,发现居然要登录,登录就登录吧,还有验证码,只好解决乎~

第一步:用户名和密码:

得到这个需要登录的url,然后利用selenium的webdriver打开浏览器,并输入信息(为什么用selenium?因为这篇文章写的就是用selenium。selenium太慢?确实很慢)

利用selenium+打码工具实现自动识别验证码并登录

这样,用户名和密码就都输入完了。接下来,是验证码

利用selenium+打码工具实现自动识别验证码并登录

 

第二步:验证码

在验证码这里,首先我们要确保这个验证码是最新的,然后识别它。那么如何确保最新,有的网站是直接点击验证码刷新,有的网站会有‘看不清,点击刷新’,类似的字样,总之确保最新就可以了。这里对图片进行点击

利用selenium+打码工具实现自动识别验证码并登录

接下来,使用要识别验证码,就要对图片进行保存,这里用到的是selenium的对元素截图

利用selenium+打码工具实现自动识别验证码并登录

最后,是对验证码进行识别。这里没有使用二值化、灰度等技术,笔者发现,写了半天的技术,好像不行。于是乎,找了个打码平台,解决验证码识别,何必重复造*呢,是吧(明明是自己太懒,抠鼻~)

在这里选择了斐斐打码  http://www.fateadm.com/

查看它的开发文档下载python3的demo

利用selenium+打码工具实现自动识别验证码并登录

 

然后,在demo里有个TestFunc()方法,将其修改,传入自己的pd_id、pd_key、app_id、app_key以及图片的位置和需要识别的验证码类型

利用selenium+打码工具实现自动识别验证码并登录

最后,返回验证的结果

 

回到刚刚的代码,我们利用TestFunc()识别出验证码之后,就可以将验证码输入,点击登录

 

第三步:判断是否验证成功

这里加一步,判断是否验证成功。首先使用current_url获取当前页面的url,然后对比登录页面的url,如果相等则重新

来一遍登录。所以用到了while语句

利用selenium+打码工具实现自动识别验证码并登录

 

最后,把源代码截图给大家,代码一定要自己打一遍

利用selenium+打码工具实现自动识别验证码并登录