模拟登录时的验证码问题
发布于 8 年前 作者 wxwrjgcs 3489 次浏览 来自 问答

网友提出如下意见。 1.请求你们学校的教务处网页的登录页,记录cookie 2.请求验证码,并且使用上述记录的cookie,得到验证码的结果 3.提交模拟登录请求,使用第一步所得的cookie与第二频所得的验证码 正好的我在使用的一种方法,可是我遇到一个棘手问题: 现在使用superagent实现了第一步,也返回了cookie,可是第二步的时候遇到问题了,我找的识别图像的插件需要的参数是image,而superagent请求返回好像只能是数据流,有办法转为image吗?另外的想法是:node.js自带的request是可以直接用pipe下载图像的,可是也会有问题,怎么把上述记录的cookie给到request呢? 麻烦了。可以帮忙解答吗?

2 回复

request 貌似不是 node.js 自带的吧, 要npm install的 node.js 貌似也没有 image 这个类型,应该是 Stream,Buffer,String (Base64)这几种类型。 request 可以获取成 Buffer 也可以 pipe 到磁盘成为文件。Buffer 可以直接转成 Base64 的 String。看你需要转换就行了。 cookie 的问题好解决,用 CookieJar 就行了。

var jar = request.jar();
request({url: 'http://xxx', jar: jar, encoding: null}, function(err, res, buff) {
  // deal with buff
})

每次 request 的时候,把同一个 jar 传进去就行了。会自动更新存储的,很方便。encoding 指定为 null 就能获取到 buff

@klesh 谢谢提醒和帮助。刚入门还需努力。

回到顶部