request模块 网址爬虫压缩格式为 deflate,大佬们该怎么解决
发布于 5 年前 作者 2460392754 3200 次浏览 来自 问答
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);
   }
})
回到顶部