CNode

request模块 网址爬虫压缩格式为 deflate,大佬们该怎么解决

问答
22460392754发布于7 年前最后回复7 年前7 回复3902 浏览0 收藏
查看回复

回复 (7)

2
2460392754#1·7 年前

Content-Encoding →deflate, 返回的内容是乱码

Z
zengming00#2·7 年前

你这个问题在我玩程序历史中有记载的出现时间是14年10月2号,解决办法是 accept-encoding: '' 要求服务器不压缩,一般人我不告诉他

M
myy#4·7 年前

“要求服务器不压缩” 正规的写法是: accept-encoding: identity

Z
zengming00#6·7 年前
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);
   }
})
2
2460392754#7·7 年前
引用 zengming00

@zengming00 谢谢

参与回复
登录后即可参与回复。登录