1.超级鹰注册
超级鹰: https://www.chaojiying.com/
注册后购买题分
2.获取要识别的图片
我们以这个附件下载的网页为例: https://gh.lnut.edu.cn/system/_content/download.jsp?urltype=news.DownloadAttachUrl&owner=1224556702&wbfileid=1504223
点开f12然后刷新几次验证吗找到接口
验证码图片接口链接: https://gh.lnut.edu.cn/system/resource/js/filedownload/createimage.jsp
每次访问都会刷新出新的图片
import requests
img_url='https://www.jsei.edu.cn/system/resource/js/filedownload/createimage.jsp'
img_res=requests.get(img_url,verify=False)
3.使用超级鹰识别验证码
首先需要将超级鹰的文档保存
#!/usr/bin/env python
# coding:utf-8
import requests
from hashlib import md5
class Chaojiying_Client(object):
def __init__(self, username, password, soft_id):
self.username = username
password = password.encode('utf8')
self.password = md5(password).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 PostPic_base64(self, base64_str, codetype):
"""
im: 图片字节
codetype: 题目类型 参考 http://www.chaojiying.com/price.html
"""
params = {
'codetype': codetype,
'file_base64':base64_str
}
params.update(self.base_params)
r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, 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()
使用超级鹰
import requests
from chaojiying import *
import requests
img_url='https://gh.lnut.edu.cn/system/resource/js/filedownload/createimage.jsp'
img_res=requests.get(img_url,verify=False)
chaojiying = Chaojiying_Client('账号', '密码', '软件ID') #用户中心>>软件ID 生成一个替换 96001 #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
yzmcode=chaojiying.PostPic(img_res.content, 1902)["pic_str"]
print(yzmcode)