Node.js 将cookie文件传递到curl请求节点
我使用chrome的cookies.txt扩展名在登录谷歌后获取cookies.txt。 cookie文件格式为netscape cookie。现在我想通过nodejs将这个cookie文件传递给http请求 我使用的命令行:Node.js 将cookie文件传递到curl请求节点,node.js,cookies,http-headers,httprequest,Node.js,Cookies,Http Headers,Httprequest,我使用chrome的cookies.txt扩展名在登录谷歌后获取cookies.txt。 cookie文件格式为netscape cookie。现在我想通过nodejs将这个cookie文件传递给http请求 我使用的命令行: curl -L -b cookie.txt https://myaccount.google.com/ 但我找不到任何文档告诉我如何将cookie文件传递给nodejs的curl函数。 如何将上述命令行转换为nodejs 更新: cookie.txt格式如下: # HT
curl -L -b cookie.txt https://myaccount.google.com/
但我找不到任何文档告诉我如何将cookie文件传递给nodejs的curl函数。
如何将上述命令行转换为nodejs
更新:
cookie.txt格式如下:
# HTTP Cookie File for mozilla.org by Genuinous @genuinous.
# To download cookies for this tab click here, or download all cookies.
# Usage Examples:
# 1) wget -x --load-cookies cookies.txt "https://developer.mozilla.org/vi/docs/Web/JavaScript/Reference/Functions/Arrow_functions"
# 2) curl --cookie cookies.txt "https://developer.mozilla.org/vi/docs/Web/JavaScript/Reference/Functions/Arrow_functions"
# 3) aria2c --load-cookies cookies.txt "https://developer.mozilla.org/vi/docs/Web/JavaScript/Reference/Functions/Arrow_functions"
#
.mozilla.org TRUE / FALSE 1643553591 _ga GA1.2.176633766.1564724252
.developer.mozilla.org TRUE / TRUE 1583073592 dwf_sg_task_completion False
.mozilla.org TRUE / FALSE 1580567991 _gid GA1.2.1169610322.1580463999
developer.mozilla.org FALSE / FALSE 1580483392 lux_uid 158048125271715522
.mozilla.org TRUE / FALSE 1580481652 _gat 1
Nodejs代码:
var http = require('http');
var options = {
hostname: 'www.myaccount.google.com',
path: '/',
headers: {
'User-Agent': 'whatever',
'Referer': 'https://google.com/',
'Cookie': ????
}
};
http.get(options, callback);
正如您已经知道的,您只需要根据与目标主机名对应的名称和值设置
Cookie
头。以下是您的cookie文件中developer.mozilla.org
域的一个示例:
var http = require('http');
var options = {
hostname: 'developer.mozilla.org',
path: '/',
headers: {
'User-Agent': 'whatever',
'Referer': 'https://google.com/',
'Cookie': 'dwf_sg_task_completion=False; lux_uid=158048125271715522;'
}
};
http.get(options, callback);
这是包裹。它可以读取netscape格式的Cookie文件并生成相应的头文件
它将从Cookie文件发送Cookie及其所有过期、路径和范围数据
类似这样的内容(未调试):
在node.js中,您需要根据正在发出的请求设置。如果您显示用于发出请求的nodejs代码并显示cookie文件,那么人们可以更具体地帮助您。我更新了cookie.txt格式。cookie标题如下:
cookie:name=value;名称2=值2;name3=value3
这样,示例文件中的第一个cookie将是cookie:_ga=GA1.2.176633766.156472452代码>我在使用代码后出现错误“Cookie文件不存在”。在调用CookieMap构造函数时是否提供了Cookie文件的实际路径?使用实际路径代替path/to/cookie.txt
。
var http = require('http');
const cookiefile = require('cookiefile')
const cookiemap = new cookiefile.CookieMap('path/to/cookie.txt')
const cookies = cookiemap.toRequestHeader().replace ('Cookie: ','')
var options = {
hostname: 'www.myaccount.google.com',
path: '/',
headers: {
'User-Agent': 'whatever',
'Referer': 'https://google.com/',
'Cookies': cookies
}
};
http.get(options, callback);