最早在爬虫中遇到滑动验证码是在国家企业信用信息公示系统中,当时也是运用selenium来完成。现在该网站已经改为点触验证码了,故现在用bilibili登录页面作为一个示例。
一、识别思路
识别滑动验证码需要完成如下几步:
1)模拟点击验证按钮
2)得到完整的验证码图片
3)得到带缺口的验证码图片
4)比较图片的像素差异,识别缺口
5)模拟滑动动作
二、初始化
b站的登录地址为https://passport.bilibili.com/login,需要预先注册好的账号
class BilibiliLogin():
def __init__(self):
self.url = 'https://passport.bilibili.com/login'
self.browser = webdriver.Chrome()
self.wait = WebDriverWait(self.browser, 10)
self.username = username
self.password = password
三、模拟点击
实现思路中的第一步,点击按钮显示完整的滑动验证码图片,然后实现第二步得到完整图片