python爬虫--滑动验证码破解
记录于2020.10.22
废话不多说直接上源码
1 #获取有缺口的图片 2 bigImg = Imgdict['bigImgName'] 3 smallImg = Imgdict['smallImgName'] 4 picture_big = self.get_HTML(bigImg) 5 bytes_stream = io.BytesIO(picture_big) 6 roiimg = Image.open(bytes_stream) 7 roiimg.save('./big.png') 8 #获取缺口图片 9 picture_amsll = self.get_HTML(smallImg) 10 bytes_stream = io.BytesIO(picture_amsll) 11 roiimg = Image.open(bytes_stream) 12 roiimg.save('./small.png') 13 14 #二值化图片并进行比对 15 target_rgb = cv2.imread('../../chengxu/big.png', 0) 16 #匹配缺口位置,并获取移动距离 17 template_rgb = cv2.imread('../../chengxu/small.png', 0) 18 res = cv2.matchTemplate(target_rgb, template_rgb, cv2.TM_CCOEFF_NORMED) 19 value = cv2.minMaxLoc(res) 20 Value = value[2][0] 21 Deviation = random.randint(0, 3) 22 if Deviation % 2 == 0: 23 Value_dev = Value - Deviation 24 else: 25 Value_dev = Value + Deviation
根据获取到的验证码图片进行处理、匹配拿到滑动距离
利用随机数在对滑动距离做模仿,ps:不要问为什么,因为没有人会每次准确无误的滑动到完美的距离
之后根据前端分析出的网址进行传入距离,有必要时建议第一次传入一个随即值,第二次传入正确的距离值
这样返回的JSON数据里面就会包含对应的加密口令
后面你就可以驰骋了,加油吧!!!!