期货保证金监控中心使用独立于交易账号的另一对账号密码,可以查询账户权益、持仓、出入金等信息。
最近写了个程序每天自动登录期货保证金监控中心,爬取账户权益信息。代码在https://github.com/sfl666/cfmmc_spider
要想实现自动登录,首先等自动识别验证码,期货保证金监控中心登录界面的验证码
模式比较简单,蓝色背景,由字母和数字组成的6个字符。
使用Google的开源工具Tesseract-OCR识别验证码。由于需要识别的验证码只有英文字母和数字,所以不用额外安装语言包。
为了提高识别准确率,首先将图片二值化
然后使用pytesseract包进行识别。通过试验发现识别准确率不高,需要多次尝试。
def reg_img(file_obj):
im = Image.open(file_obj)
im = im.convert('L')
binary_image = im.point([0 if i < 210 else 1 for i in range(256)], '1')
im1 = binary_image.convert('L')
im2 = PIL.ImageOps.invert(im1)
im3 = im2.convert('1')
im4 = im3.convert('L')
res = pytesseract.image_to_string(im4)
# print(res)
# im4.show()
return res
用python的requests包的session类进行模拟登录,不断的刷新验证码来进行识别。
获取验证码的地址为https://investorservice.cfmmc.com/veriCode.do?t=1558783306549,其中1558783306549为时间戳。
试验了几次,刷新验证码的次数都没有超过100。
转载自原文链接, 如需删除请联系管理员。
原文链接:爬取期货保证金监控中心,转载请注明来源!