今天在看代码的时候,遇到京东的滑块验证码,因为京东的滑块验证码是获取不到原图的,所以看了下具体处理方法,发现思路是需要提前在本地下载好验证码的原始图片,京东的大概验证码滑块图片有10张,之后再进行比对,但是这种方法其实是一种很傻的方法,并且一单网站做改动,那么无疑是很被动的,所以在寻求他法中,了解到了一个神奇的包,cv2
通过使用selenium模拟登录解决滑块验证问题中的链接可以得到如下两张图片:
target.jpg
template.png
现在想要通过“template.png”在“target.jpg”中找到对应的缺口,代码实现如下:
# encoding=utf8
import cv2
import numpy as np
def show(name):
cv2.imshow('Show', name)
cv2.waitKey(0)
cv2.destroyAllWindows()
def main():
otemp = 'template.png'
oblk = 'target.jpg'
target = cv2.imread(otemp, 0)
template = cv2.imread(oblk, 0)
w, h = target.shape[::-1]
temp = 'temp.jpg'
targ = 'targ.jpg'
cv2.imwrite(temp, template)
cv2.imwrite(targ, target)
target = cv2.imread(targ)
target = cv2.cvtColor(target, cv2.COLOR_BGR2GRAY)
target = abs(255 - targe