关于node http.request中处理response方式的疑问
本文介绍了关于node http.request中处理response方式的疑问的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
本人新手,在学习写node爬虫的时候遇到了这样的问题:除了在data事件中处理http.IncomingMessage,还有哪些方式呢?
具体点:
const http = require('http');
const iconv = require('iconv-lite');
let fetchJueQi = http.get(options,
(res) => {
res.on('data', (chunk) => {
let context = iconv.decode(chunk, 'gbk');
console.log('内容'+ context);
})
});
假如用这个函数获取一个页面的html代码,可能会有几次console.log的输出,每次输出html代码的一段。
那么现在我怎么做,才能一次直接输出整个html代码?
求大神解答,感激不尽!!!
解决方案
创建一个Buffer,每次data事件触发时用Buffer.concat连接两段数据
在end事件后整体输出
代码大概这样,随手写的没跑过,可能有错
let content = new Buffer(0);
res.on('data', (chunk) => {
content = Buffer.concat([content, chunk]);
}).on('end', () => {
//这时content就是完整的了
});
这篇关于关于node http.request中处理response方式的疑问的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文