解决时代光华挂课程序出现验证码的问题(时代光华挂课程序篇二)

       早前的时间,使用python编写了一个自动挂课程的程序,开发出来后,使用起来没遇到问题,大部分课程都能自动处理。但自从课程平台开始加入防挂机机制,不定时弹出验证码。因此先前编写的程序运行起来的效果就有点差了,总是被退出登录,课程总是完不成。愁啊,后来即使加入了异常捕捉处理,重启程序,但效果还是不理想的效果。由于之前比较忙,而且也没需要学习的课程,所以就把这个自动挂课程程序扔在了一边。最近开始又兴起了班后学习,该解决的问题还是需要解决。于是想到了两个解决方案:

       一、使用程序一直监听网页,判断验证码的弹出,然后输入验证码,继续学习

       这个方案,内存占用高,程序需要一直在捕捉页面,判断页面是否弹出验证码,加上对于弹出的验证码,需要使用图形识别技术,识别还需要高效和准确,对于图形识别平台,网上找了下资料,发现好多博主都推荐tesserocr这个模块,我下载并测试了一下,效果不太理想,识别准确率不是很高。在网上再找了一圈验证码接口平台,效果是真心不错,但顶不住需要收费呀,所以也就没往这方面入手了,至此,这个方案暂时不适合。

       二、使用页面监测,页面关闭后马上重启

       出现验证码后如果没有及时输入,系统会把课程的标签页关闭,于是我想着使用多一个线程,监测课程网页的标签页是否存在,不存在就重启。但是发现线程监测不太理想,于是把这个监测的方向也放入了程序的线程中。经过使用,虽然笨拙,但是效果理想,已解决了验证码困扰的问题。

具体代码如下:

   

   def monitorHandle(self):     
       driver=self.driver
       allHandles = driver.window_handles  # 所有的handles
       if self.curLenHandle in allHandles:
           print('存在标签页中')
       else:
           print('没在标签页中,抛出异常重启')
           raise Exception('自定义没在标签页的异常')    #自定义抛出的类型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值