首页 > 利用python提取网页中的随机验证码

利用python提取网页中的随机验证码

初学python,自己写了一个脚本来模拟登陆学校的教务系统,但是教务系统要求输入验证码,审查元素后发现该验证码的链接导向的图片每次访问都不同,我在写出的脚本中忽略了这个问题,结果返回的页面显示验证码错误,不知该如何解决这个问题,谢谢

我刚才想了一下,我的问题核心是我无法获取验证码图片,因为这个图片的来源页是随机显示图片的。是我获取图片的方法错了吗?


就像楼上所说的那样,重要的是携带cookie。实现你所要的功能主要这样几个步骤
1、设置脚本cookie,Python中可以使用cookielib
2、第一次访问你要登录的页面,并获取当前页面的cookie
3、携带这个cookie对你的link进行请求,并下载该验证码,其实就是将字节流保存到文件中(不谈智能识别)
4、将用户名密码以及验证码并携带cookie向登录url发送请求。


后面那个随机字符串是无效的,为了防止浏览器缓存才存在的一种解决方法。

验证码图片链接直接就是

http://xxx.xxx/randomImage.do

第一次请求时候拿到页面源码,不管验证码链接如何随机都可以直接解析出来。
重点:请求验证码后一定要维持这个session,否则再次提交表单进行登录的时候是无法正确校验验证码的。
验证码虽然随机出现,但是总会有一个正确的值和当前session绑定的,注意session维持


建议使用requests

会话对象让你能够跨请求保持某些参数。它也会在同一个Session实例发出的所有请求之间保持cookies。


你需要OCR来识别图片中的文本,试试tesseract-ocr或者其他的吧

【热门文章】
【热门文章】