刚学node,想用node爬教务处的成绩。但是有个烦人的验证码。 我想的是 直接手动输入。 一个html页面通过验证码地址显示验证码图片,然后通过form表单手动输入提交给node,然后node再将学号密码和收到的验证码post给教务处。 但是不能成功,是不是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呢?麻烦了。可以帮忙解答吗?