期货保证金监控中心使用独立于交易账号的另一对账号密码,可以查询账户权益、持仓、出入金等信息。 最近写了个程序每天自动登录期货保证金监控中心,爬取账户权益信息。代码在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。