模拟登录时的验证码问题
发布于 1个月前 作者 bearhasdream 413 次浏览 来自 问答

刚学node,想用node爬教务处的成绩。但是有个烦人的验证码。 我想的是 直接手动输入。 一个html页面通过验证码地址显示验证码图片,然后通过form表单手动输入提交给node,然后node再将学号密码和收到的验证码post给教务处。 但是不能成功,是不是post的时候验证码的图片又更新了。 该怎么解决。 有实例的话,也可以直接发实例让我琢磨。 感谢各位大大。

10 回复

捕获生成验证码之前的数字,否则无解,图像识别即费力又不靠谱

@i5ting 如果我只查自己的成绩, 是否可以手动登录后取得cookie,然后以后每次登录通过cookie绕过验证码?

验证码破解呗~信息安全大四狗前来~ 这个都东西可难可简单,看具体情况把 新手建议去乌云上看看把 常见验证码的弱点与验证码识别

我现在想的也不是自动识别, 就是手动输入。 就是通过 读取验证码图片,手动输入验证码,然后一起post。

自己很久以前也整过一个和楼主类似的爬教务处成绩,不过是用tesseract来识别预处理过的验证码图片,并且加上失败重试。个人玩下来感觉一般都会在3次重试之内就识别成功了,一般学校教务处的验证码并不会用很高端的。。楼主可以参考一下:https://github.com/DavidCai1993/getGPA

你可以自己简单的处理一下,步骤如下 1.你可以先手动登录你们教务处的网站,并登录 2.获取所得的cookie,这个chrome开发人员工具network下面的就可以查询到 3.并上述cookie用到node的请求中

还有一种方法 1.请求你们学校的教务处网页的登录页,记录cookie 2.请求验证码,并且使用上述记录的cookie,得到验证码的结果 3.提交模拟登录请求,使用第一步所得的cookie与第二频所得的验证码

如果验证码比较简单的话识别几个特征点是能判断是哪个数字的…

@chloe 现在使用superagent实现了第一步,也返回了cookie,可是第二步的时候遇到问题了,我找的识别图像的插件需要的参数是image,而superagent请求返回好像只能是数据流,有办法转为image吗?另外的想法是:node.js自带的request是可以直接用pipe下载图像的,可是也会有问题,怎么把上述记录的cookie给到request呢?麻烦了。可以帮忙解答吗?

回到顶部