request模块 网址爬虫压缩格式为 deflate,大佬们该怎么解决
7 回复
Content-Encoding →deflate, 返回的内容是乱码
你这个问题在我玩程序历史中有记载的出现时间是14年10月2号,解决办法是 accept-encoding: '' 要求服务器不压缩,一般人我不告诉他
@zengming00 好像不行,强制压缩
“要求服务器不压缩” 正规的写法是: accept-encoding: identity
const request = require('request');
const zlib = require('zlib');
const url = 'http://comment.bilibili.com/75686462.xml'
request.get(url, { encoding: 'binary' }, function (err, resp, body) {
if (err) {
console.log(err);
return;
}
if (resp.headers['content-encoding'] === 'deflate') {
// console.log(Buffer.isBuffer(body))
zlib.inflateRaw(Buffer.from(body, 'binary'), function (err, result) {
if (err) {
console.log(err);
return;
}
console.log(result.toString());
})
} else {
console.log(body);
}
})
@zengming00 谢谢