我想模仿签署一些网站。当它恐慌时,我需要重新运行应用程序,并输入captcha。我希望安装主管自动重新运行它并重用我得到的cookie,但我发现请求的Jar没有一些方法,比如从其他服务器设置cookie。我只能像文档一样设置我创建的cookie:
// `npm install --save tough-cookie` before this works
var j = request.jar()
var cookie = request.cookie('your_cookie_here')
j.setCookie(cookie, uri);
request({url: 'http://www.google.com', jar: j}, function () {
request('http://images.google.com')
})
并获得类似的cookie
var j = request.jar()
request({url: 'http://www.google.com', jar: j}, function () {
var cookie_string = j.getCookieString(uri); // "key1=value1; key2=value2; ..."
var cookies = j.getCookies(uri);
// [{key: 'key1', value: 'value1', domain: "www.google.com", ...}, ...]
})
如何重用从其他服务器获得的cookie?
在https://github.com/request/request:
使用自定义cookie存储(例如FileCookieStore
支持保存到JSON文件和从JSON文件恢复),将其作为参数传递至request.jar()
:
var FileCookieStore = require('tough-cookie-filestore');
// NOTE - currently the 'cookies.json' file must already exist!
var j = request.jar(new FileCookieStore('cookies.json'));
request = request.defaults({ jar : j })
request('http://www.google.com', function() {
request('http://images.google.com')
})