很多网站都有拼图验证码1。首先要了解拼图验证码的生成原理
2。制定破解计划,考虑其可能性和成功率。
3。编写脚本
很多网站的拼图验证码都是直接借助第三方插件,也就是一类一种解法。
笔者遇到的这种拼图验证码实际上是多个小碎片经过重新组合成的一张整体,首先要在网站上抓取这种小碎片图片并下载到本地
我们先捋一捋大体思路:
获取所有碎片图片----找出他们的排列顺序逻辑-----找出他们中含有颜色深的真正位置的那个小碎块的序号-----根据每块碎片的宽度和上下和这个深色小块的序号算出距离----用selenium向右移动滑块到这个距离
直接上代码
先导入必要的包:
# -*- coding:utf-8 -*-import colorsysimport urllib,os,uuid,re,timefrom PIL import Imagefrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium import webdriver
抓到并下载到本地
def create(locapath,fileName): filePath=locapath+'/'+fileName if not os.path.exists(filePath): file=open(filePath,'a+') file.close() return filePathdef downloadImg(): list = openBrowser() for i in range(2): fileName = str(i) + '_test.jpg' urllib.urlretrieve(list[i], create('/Users/zijiawang/Downlo