极验验证码是一种应用广泛的验证码解决方案,特别是在反爬虫的应用场景中,被认为是最佳选择之一。本文介绍了如何使用 Python 和 Selenium 自动破解极验验证码。
极验验证码的特点是,首先需要点击按钮进行智能验证,如果验证不通过,则会弹出滑动验证的窗口,拖动滑块拼合图像进行验证,之后生成三个加密参数,通过表单提交到后台,后台还会进行一次验证。
为了破解极验验证码,需要进行以下三个步骤:
模拟点击验证按钮
识别滑动缺口的位置
模拟拖动滑块
为了实现这三个步骤,需要进行一些初始化工作,包括配置 Selenium 和设置参数。然后使用 Selenium 模块模拟浏览器对网页进行操作,模拟点击验证按钮。接着,需要获取前后两张图片的位置和宽高,并获取整个网页的截图进行裁切。最后一步是模拟拖动,经过多次试验,发现完全模拟加速减速的过程通过了验证,因此使用物理学的加速度公式进行加速减速运动即可完成验证。
Ps:动手能力弱的小伙伴也可以直接访问www.ttocr.com官网使用。
import time
from io import BytesIO
from PIL import Image
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC