Node.js 刮削大篮子产品失败
我正在尝试获取Bigbarket.com网站的所有产品,用于特定的网络搜索。 我现在使用URL:获取搜索查询塔塔的所有产品Node.js 刮削大篮子产品失败,node.js,web-scraping,request,e-commerce,cheerio,Node.js,Web Scraping,Request,E Commerce,Cheerio,我正在尝试获取Bigbarket.com网站的所有产品,用于特定的网络搜索。 我现在使用URL:获取搜索查询塔塔的所有产品 exports.getBBPrices = (req, res, next) => { let searchQuery = req.query.search; searchQuery = searchQuery.split(' ').join('+'); console.log(searchQuery); var options = { headers: {'
exports.getBBPrices = (req, res, next) => {
let searchQuery = req.query.search;
searchQuery = searchQuery.split(' ').join('+');
console.log(searchQuery);
var options = {
headers: {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36'},
method: 'GET'
}
url = `https://www.bigbasket.com/ps/?q=tata`;
const result = [];
process.setMaxListeners(15)
request(url, options, function(err, response, html){
if(!err) {
const $ = cheerio.load(html);
// ... furhter processing
} else {
console.log('error', err);
}
});
}
我在控制台中遇到以下错误
(节点:16080)MaxListenerSexceed矮化:检测到可能的EventEmitter内存泄漏。向[Request]添加了11个管道侦听器。使用emitter.setMaxListeners()增加限制
错误:超过maxRedirects。可能陷入了重定向循环
在Redirect.onResponse(C:\my\u space\projects\get prices\node\u modules\request\lib\Redirect.js:98:27)
at Request.onRequestResponse(C:\my\u space\projects\get prices\node\u modules\Request\Request.js:986:22)
在ClientRequest.emit(events.js:311:20)
在HTTPParser.parserOnIncomingClient[作为onIncoming](_http_client.js:603:27)
在HTTPParser.parserOnHeadersComplete(_http_common.js:119:17)
在TLSSocket.socketOnData(_http_client.js:476:22)
在TLSSocket.emit(events.js:311:20)
在addChunk(_stream_readable.js:294:12)
在readableAddChunk(_stream_readable.js:275:11)
在TLSSocket.Readable.push(_stream_Readable.js:209:10)
任何人都可以帮我解决这个问题。假设服务器正在响应头中设置会话cookie并重定向到同一url。请求不会设置cookie,您将陷入重定向循环。是否有解决方案可以避免这种情况并获得正确的响应?请查看该库的cookiejar选项。