超级鹰处理验证码

超级鹰打码

通过借助第三方平台对验证码的识别,来实现我们的目的,此处以超级鹰网站自身登入为例

  1. 准备工作:

    超级鹰官网注册属于自己的账号,在此账号内充值积分(1元=1000积分)
    请添加图片描述

    点击左侧中软件ID一栏,在此界面生成自己的软件ID
    请添加图片描述

    点击上方开发文档一栏,选择自身开发语言并下载demo文档,这里我用的是python
    请添加图片描述

    将下载好的压缩包解压,这里我解压到了与自身所要编写的测试文件同级目录下
    请添加图片描述

  2. 关于解压的.py文件

    #第三方平台已经将验证代码编写,我们只需拿来调用即可
    #用户中心>>软件ID,填入用户名,密码,软件ID
    chaojiying = Chaojiying_Client('用户名', '密码', '软件ID')
    #验证码图片文件路径替换 a.jpg
    im = open('a.jpg', 'rb').read()
    #1902为验证码类型,可在超级鹰官网查看验证码类型的代号
    #python3.4+版 print 后要加(),我们需要将代码进行如下修改,否则系统将报错
    print chaojiying.PostPic(im, 1902)
    print(chaojiying.PostPic(im, 1902))	
    #此处为传入 base64代码
    print chaojiying.PostPic(base64_str, 1902)
    
  3. 代码编写

    #导入模块
    import time
    from selenium.webdriver import Chrome
    from chaojiying import Chaojiying_Client
    from selenium.webdriver.common.by import By
    
    #user为注册的超级鹰用户名,pwd为密码
    user = '2260767033'
    pwd = '123456789'
    ID = '953073
    web = Chrome()
    web.get('http://www.chaojiying.com/user/login/')
    web.find_element(By.XPATH,'/html/body/div[3]/div/div[3]/div[1]/form/p[1]/input').send_keys(user)
    web.find_element(By.XPATH,'/html/body/div[3]/div/div[3]/div[1]/form/p[2]/input').send_keys(pwd)
    
    #此处img为验证码的二进制格式
    img = web.find_element(By.XPATH,'/html/body/div[3]/div/div[3]/div[1]/form/div/img').screenshot_as_png
    chaojiying = Chaojiying_Client(user, pwd, ID)
    
    #此处chaojiying.PostPic()返回的为一个字典对象
    dict = chaojiying.PostPic(img, 1902)
    
    #pic_str所对应的值就是我们需要的验证码内容
    str = dict['pic_str']
    web.find_element(By.XPATH,'/html/body/div[3]/div/div[3]/div[1]/form/p[3]/input').send_keys(str)
    time.sleep(3)
    web.find_element(By.XPATH,'/html/body/div[3]/div/div[3]/div[1]/form/p[4]/input').click()
    time.sleep(5)
    web.close()
    
  4. 可能遇到的问题

    在导入下方代码的时候,程序可能会报错:

    from chaojiying import Chaojiying_Client
    

    我们可以通过将文件标记为Source root以解决该问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值