我想模仿某些网站的签名。当恐慌时我需要重新运行应用程序,并输入验证码。我希望安装主管自动重新运行它并重用我得到的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?
答案 0 :(得分:1)
在https://github.com/request/request找到解决方案:
使用自定义Cookie存储(例如
FileCookieStore
它支持从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')
})