zoukankan      html  css  js  c++  java
  • Python 实现简单图片验证码登录

    朋友说公司要在测试环境做接口测试,登录时需要传入正确的图片的验证码,本着懒省事的原则,推荐他把测试环境的图片验证码写死,我们公司也是这么做的^_^。劝说无果/(ㄒoㄒ)/~~,只能通过 OCR 技术来识别图片验证码了,看了一下他们的验证码,长这样,还好挺容易识别(背景色是透明的,有个坑需要处理)。

    Python 实现了图片验证码登录 demo,用到的第三方模块有 requests, PILpytesseract

     1 # coding: utf-8
     2 import requests
     3 from PIL import Image
     4 from pytesseract import image_to_string, pytesseract
     5 
     6 pytesseract.tesseract_cmd = 'D:\env\Tesseract-OCR\tesseract'
     7 # url
     8 base_url = 'https://hostxxx'
     9 code_url = base_url + '/common-platform/code'
    10 do_login_url = base_url + '/common-platform/doLogin'
    11 
    12 
    13 # 空白背景色 pytesseract 无法识别,更换了一下背景色
    14 def change_background(img_fp):
    15     try:
    16         img = Image.open(img_fp)
    17         x, y = img.size
    18         new_img = Image.new('RGBA', img.size, (255, 255, 255))
    19         new_img.paste(img, (0, 0, x, y), img)
    20         return new_img
    21     except:
    22         print u'更换图片背景失败'
    23 
    24 
    25 # 识别图片验证码
    26 def ocr2str(img):
    27     return str(image_to_string(img))
    28 
    29 
    30 # 创建 session
    31 session = requests.Session()
    32 # 请求图片验证码接口
    33 code_resp = session.request(method='GET', url=code_url, verify=False)
    34 # 保存图片验证码
    35 with open('code.png', 'wb') as f:
    36     f.write(code_resp.content)
    37 # 验证码
    38 code = ocr2str(change_background('code.png'))
    39 # 登录数据
    40 do_login_data = {
    41     'userName': 'user',
    42     'password': 'pwd',
    43     'verificationCode': code
    44 }
    45 # 登录接口
    46 do_login_resp = session.request(method='POST', url=do_login_url, data=do_login_data, verify=False)
    47 print do_login_resp.text  # 检验登录是否成功
    
    
    
  • 相关阅读:
    深入理解JavaScript系列(17):面向对象编程之概论
    深入理解JavaScript系列(16):闭包(Closures)
    深入理解JavaScript系列(15):函数(Functions)
    深入理解JavaScript系列(14):作用域链(Scope Chain)
    SSM框架之多数据源配置
    开源项目之架构分享
    SpringBoot实战(十二)之集成kisso
    开源项目之kisso
    MP实战系列(十八)之XML文件热加载
    MP实战系列(十七)之乐观锁插件
  • 原文地址:https://www.cnblogs.com/bilibang/p/7264621.html
Copyright © 2011-2022 走看看