var req = https.request(options, function (res) {
res.setEncoding('utf-8');
res.on('data', function (chunk) {
var buf = iconv.decode(chunk, 'utf-8').toString(); //解码
stockStr += buf;
// stockStr += chunk;
});
res.on('end', function (chunk) {
console.log('so', stockStr)
const stocksArr = stockStr.split('group_id": "');
var groupIds = [];
for (var i = 1; i < stocksArr.length; i++) {
groupIds.push(stocksArr[i].split('", "middle')[0]);
}
if (groupIds.length > 0) {
groupIds.map((item, i) => {
console.log('item', item)
// comment(item); // 评论
// praise(item);
})
}
});
})
上面这段代码在请求有些网站的时候会出现乱码,并且需要npm install iconv
因为有些文章返回的格式为gzip;可以尝试下面的代码
var req = https.request(options, function (res) {
var html = '', output;
if (res.headers['content-encoding'] == 'gzip') {
var gzip = zlib.createGunzip();
res.pipe(gzip);
output = gzip;
} else {
output = res;
}
output.on('data', (data) => {
data = data.toString('utf-8');
html += data;
});
output.on('end', () => {
html = unescape(html.replace(/\\u/g, "%u")); // 将unicode编码转中文
console.log(html);
const stocksArr = html.split('group_id": "');
var groupIds = [];
for (var i = 1; i < stocksArr.length; i++) {
groupIds.push(stocksArr[i].split('", "middle')[0]);
}
if (groupIds.length > 0) {
groupIds.map((item, i) => {
// comment(item); // 评论
// praise(item);
})
}
})
})
上面这个需要安装zlib依赖包,npm install zlib ;运行结果如下: