gpt4 book ai didi

javascript - Node.JS:带有请求模块的简单 GET 抛出 "Possible EventEmitter memory leak detected"

转载 作者:行者123 更新时间:2023-12-02 22:03:14 25 4
gpt4 key购买 nike

尝试了解网页抓取的基础知识,并成功使用 Python 实现了这一点。当尝试使用 Node 进行模拟时,出现以下错误:

检测到可能的 EventEmitter 内存泄漏。添加了 11 个管道监听器。使用emitter.setMaxListeners()增加限制

下面是尝试使用node scrape.js运行的简单代码片段:

const request = require('request');

const uri = 'https://www.somewebsite.com/auth/get_menu/?city_id=1';
const headers = {
'accept': '*/*',
'content-type': 'application/json',
'app_client': 'consumer_web'
};

process.on('warning', e => console.warn(e.stack));

request({uri, headers, method: 'GET'}, (err, response, body) => {
if(!err){
console.log(response);

console.log(body);
}
});

请告诉我哪里做错了。提前致谢。

最佳答案

看起来您尝试废弃的网站会生成无限循环并禁用 cookie,因此您需要在发出请求时启用它们。有些人认为这样应该可行。

const request = require("request");

const uri = "https://www.bigbasket.com/auth/get_menu/?city_id=1";
const headers = {
accept: "*/*",
"content-type": "application/json",
app_client: "consumer_web"
};

process.on("warning", e => console.warn(e.stack));

request({ uri, headers, method: "GET", "jar": true }, (err, response, body) => {
if (!err) {
console.log(response);

console.log(err);
}
});

jar 设置为 true 就是这里的技巧。

顺便说一句,请求模块越来越无人维护,因此最好使用一些现代包,例如 gotaxios 等。希望这会有所帮助

关于javascript - Node.JS:带有请求模块的简单 GET 抛出 "Possible EventEmitter memory leak detected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59809253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com