Python爬虫解决极验(geetest)滑动验证码

本文介绍用Python程序识别极验滑动验证码的验证。使用Selenium库和Chrome浏览器,通过初始化、模拟登录填写、获取并储存有无缺口的两张图片、获取缺口位置、获取移动轨迹、按轨迹拖动完成验证等步骤,实现极验管理后台登录页面的自动化登录。

滑动验证码的识别介绍

  • 本节目标:

用程序识别极验滑动验证码的验证,包括分析识别思路、识别缺口位置、生成滑块拖动路径、模拟实现滑块拼合通过验证等步骤。

  • 准备工作:

本次案例我们使用Python库是Selenium,浏览器为Chrome。请确保已安装Selenium库和ChromeDriver浏览器驱动。

  • 了解极验滑动验证码:

极验滑动验证码官网为:http://www.geetest.com/

验证方式为拖动滑块拼合图像,若图像完全拼合,则验证成功,否则需要重新验证,如图所示:
在这里插入图片描述接下来我们链接地址:https://account.geetest.com/login,打开极验的管理后台登录页面,完成自动化登录操作。

实现步骤:

① 初始化

初始化链接地址、创建模拟浏览器对象、设置登录账户和密码等信息。

EMAIL = '登录账户'
PASSWORD = '登录密码'

class CrackGeetest():
   def __init__(self):
       self.url = 'https://account.geetest.com/login'
       self.browser = webdriver.Chrome()
       #设置显示等待时间
       self.wait = WebDriverWait(self.browser, 20)
       self.email = EMAIL
       self.password = PASSWORD

   def crack():
       pass

# 程序主入口
if __name__ == '__main__':
   crack = CrackGeetest()
   crack.crack()

② 模拟登录填写,点开滑块验证

  • 在实例化CrackGeetest对象后调用crack()方法开始模拟登录验证…

  • 调用open()方法,打开登录界面,获取账户和密码输入框节点,完成账户和密码的输入。

  • 调用get_geetest_button()方法获取滑动验证按钮,并点击。

class CrackGeetest():
   #...

   def get_geetest_button(self):
       ''' 获取初始验证按钮,return:按钮对象 '''
       button = self.wait.until(EC.element_to_be_clickable((By.CLASS_NAME, 'geetest_radar_tip')))
       return button

   def open(self):
       ''' 打开网页输入用户名密码, return: None '''
       self.browser.get(self.url)
       email = self.wait.until(EC.presence_of_element_located((By.ID, 'email')))
       password = self.wait.until(EC.presence_of_element_located((By.ID, 'password')))
       email.send_keys(self.email)
       password.send_keys
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值