Node.js 将cookie文件传递到curl请求节点

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

我使用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格式如下:

# 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);