利用Python脚本实现自动刷网课

  

人在学校,身不由己,总有一些奇奇怪怪的学习任务,需要我们刷够一定的时长去完成,但这很多都是不太令人感兴趣的文字或是视频,而这些课都有共同的特点就是会间隔一定时间发出弹窗,确认屏幕前的我们是否还在浏览页面。每次靠人工去点击,会严重影响我们做其他正事的效率。

  

利用Python脚本实现自动刷网课

  

最近小李也需要刷够一定的学习时长。于是乎,我便找了好兄弟Python来帮下忙。面我们就用Python来实现自动化刷课吧!

  

说到自动化、硒这个浏览器自动化测试框架就派上了用场,整个自动刷课的主角便是它。

  

  

那么为了实现自动刷课,我们需要先实现网站登录,才能在指定的账号内进行操作。常规的,我们需要在对应的位置,找到网页上对应的元素,并通过程序写入。

  

利用Python脚本实现自动刷网课

  

而这里有个相对麻烦的东西,即验证码,而这个验证码是白底黑字,是简单的字母数字形式,自然而然地就想到了Python的OCR库tesserocr。

  

把网站登录界面的验证码图片下载下来,调用tesserocr进行识别。输出结果即为读出的字符串序列。

        def ocr ():   形象=Image.open (“captcha.jpg”)   形象=image.convert (L)   阈值=127   表=[]   因为我在范围(256):   如果i<阈值:   table.append (0)   其他:   table.append (1)   形象=image.point(表,' 1 ')   结果=tesserocr.image_to_text(图片)   返回结果      

解决了验证码,我们直接用硒模拟点击登录按钮,便完成了登录过程。

  

  

我们需要进入的是这个实验室准入页面,完成相关课程的学习。

  

利用Python脚本实现自动刷网课

  

在编写代码的过程中一直遇到报错,信息如下:ElementNotInteractableException,即这个页面元素不能交互。我一度怀疑这个元素是因为风格里的显示属性设置成了没有。经过观察发现,这个元素并没有隐藏。

  

利用Python脚本实现自动刷网课

  

在面向谷歌编程中我发现了问题的所,在有大佬总结了这一类错误发生的原因。

  

利用Python脚本实现自动刷网课

  

首先查看是否需要切换iframe,然后看看是否需要用js的方法来滚动滚动条,接着看看是否需要加等待时间,最后检查下这个元素是否是可以点击的。

  

因为硒操作页面切换可能没有那么块,睡眠延时一下等页面切换了再进行元素的查找。

  

  

问题解决之后我们就来到了课程学习的页面。

  

利用Python脚本实现自动刷网课

  

而这个页面每分5个钟就会弹出提醒框,然后暂停课程的学习,因此我们需要利用硒自动完成关闭提醒框的操作。

  

利用Python脚本实现自动刷网课

        def answer_confirm(自我):   #每隔5分钟弹出确认窗口   数=1   而1:   试一试:   确认=self.browser.switch_to_alert ()   打印(confirm.text)   confirm.accept ()   打印(“您已经完成时长为{}分钟的阅读!”.format(计数* 5))   数+=1   time . sleep (300)   除了:   time . sleep (2)      

这样我们的程序就可以操作浏览器并完成一定时长的学习任务啦~

  

利用Python脚本实现自动刷网课

  

  

以上所述是小编给大家介绍的利用Python脚本实现自动刷网课,希望对大家有所帮助!

利用Python脚本实现自动刷网课