在使用python爬虫抓取数据的时候经常会遇到网站为了防止机器人登录而设置了验证,除了最基本的字符验证之外还有滑块验证、图片验证、顺序验证等等验证方式。那我们今天就来讲一下python如何用爬虫破解滑动验证码,一起来看看吧。
1.读取图片:在命令行控制台输入pip install opencv-python下载open库,它是专门用来对实时图像进行处理和视觉及模式识别的库。
2.高斯模糊:使用opencv库的方法讲图片进行高斯模糊处理,可以减少图片噪声,获得图片更细的位置,代码如下:
import cv2 as cv
image = cv.imread(image_path) # 图片对象
blurred = cv.GaussianBlur(image, (5, 5), 0) # 将图片按照rbg格式进行高斯模糊
cv.imshow("blurred", blurred) # 设置模糊样式
3.边缘检测:互联网上大部分的图片都是使用RGB格式作为颜色格式的,使用canny方法可以获得其二值图像,就是去除颜色后色黑白图,代码如下:
canny = cv.Canny(blurred, 200, 400)
cv.imshow("canny", canny)
4.轮廓绘制:获得黑白图像后整体的轮廓就很清晰明了了,这时候使用轮廓绘制的方法过滤出滑块空缺的位置,代码如下:
for i, contour in enumerate(contours):
x, y, w, h = cv.boundingRect(contour)
cv.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
cv.imshow('image', image)
5.拖动滑块:根据测算出来的位置在x轴上将滑块移动即可。
以上就是python爬虫破解滑动验证码的全部步骤了,希望对你有所帮助。