基于selenium进行动作链
由于最近很多人聊到滑动验证码怎么处理,所以决定自己动手试一下。
做一个东西前。我们首先要对这个东西的操作过程有一个大概的了解。
打开验证码页面。
鼠标放到拖动按钮上
对拖动按钮进行拖动
拖动到阴影快重合的位置。
放开拖动按钮。
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
artice = browser.find_element_by_class_name('geetest_slider_button') # 滑动按钮
action = ActionChains(browser)
action.click_and_hold(artice).perform() #按住按钮不放
action.reset_actions()
action.pause(0.01).move_by_offset(step, 0).perform() #step 为滑动的水平距离
action.release(artice).perform() # 松开按钮
上面就是本方用到的有关于ActionChains的方法。其他方法这里不过多介绍
接下来到我本次要介绍的重点,滑动距离的介绍,也就是图片求阴影区域的位置。
这里我使用了opencv库,主要流程包括
对图像二值化
对二值化的图像进行高斯模糊
用canny进行边缘检测
然后HoughLinesP霍夫变换寻找直线
对符合条件的直线进行处理寻找交点,进而求出我们要找的阴影快的距离