超级鹰:selenium专门用来破解各种验证码
目前,有相当一部分的验证码是:
- 英文数字
- 中文汉子
- 纯英文
- 纯数字
- 任意特殊字符
- 坐标选择识别
特别:对于极验3.0滑动验证码, 正在尝试看可以不用这个解决,毕竟有坐标
使用方法:
1. 先注册超级鹰账号并申请软件ID,注册页面链接为
https://www.chaojiying.com/user/reg/
注册账号后,点击立即充值,充个俩块钱,2000积分,可以玩好几天
2. 然后在后台开发商中心添加软件ID
3. 点击“生成一个软件ID”
4. 然后就会获得一个软件ID号,记住这个号,代码里需要用到
5. 然后下载开发者文档,用什么语言的,就下载相应的API,这里用python为案例:
6.解压后,还需要改改一点地方:(下面备注的地方)
import requests
from hashlib import md5
class Chaojiying_Client(object):
def __init__(self, username, password, soft_id):
self.username = username
# todo:更改点一
self.password = md5(password.encode("utf-8")).hexdigest()
self.soft_id = soft_id
self.base_params = {
'user': self.username,
'pass2': self.password,
'softid': self.soft_id,
}
self.headers = {
'Connection': 'Keep-Alive',
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
}
def PostPic(self, im, codetype):
"""
im: 图片字节
codetype: 题目类型 参考 http://www.chaojiying.com/price.html
"""
params = {
'codetype': codetype,
}
params.update(self.base_params)
files = {'userfile': ('ccc.jpg', im)}
r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files,
headers=self.headers)
return r.json()
def ReportError(self, im_id):
"""
im_id:报错题目的图片ID
"""
params = {
'id': im_id,
}
params.update(self.base_params)
r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)
return r.json()
if __name__ == '__main__':
# todo: 更改点二,输入注册的账号与密码,软件ID--https://www.chaojiying.com/user/mysoft/
chaojiying = Chaojiying_Client('账号', '密码', 'id')
# todo: 更改点三:本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
im = open('', 'rb').read()
# todo: 更改点四:1902 验证码类型--https://www.chaojiying.com/price.html,在官网测试案例可以查看
print(chaojiying.PostPic(im, 9101))
测试用图:
结果:字典类型的返回值,也就是chaojiying.PostPic(im, 9101)的返回值,键“pic_str"的值就是结果
{‘err_no’: 0, ‘err_str’: ‘OK’, ‘pic_id’: ‘6064522022288200019’, ‘pic_str’: ‘7261’, ‘md5’: ‘d4990cca4eadb583e6937293d68f8047’}