javascript - NodeJS 模块 'request' 返回一些符号而不是 html

标签 javascript node.js npm cheerio requestjs

我正在学习Nodejs,并尝试使用node.js进行网页抓取

我正在使用 Node 模块requestcheerio

但是当我请求 url 时,它返回一些符号而不是 html 正文

var request = require('request');
var cheerio = require('cheerio');
request({
    url:"http://mangafox.me/manga/shingeki_no_kyojin/v00/c000/1.html"
},(err, res, body) => {
    if(err) throw err;
    
    else {
        var $ = cheerio.load(body);
        console.log(body);
        }
});

命令提示符中的输出

enter image description here

谁能告诉我 这里有什么问题吗?

谢谢

最佳答案

问题在于服务器正在发送压缩响应,即使您没有请求压缩响应。

简单的修复方法是将 gzip: true 添加到 request() 选项中,这不仅会自动解压缩响应,还会向服务器发送适当的 Accept-Encoding header 。

关于javascript - NodeJS 模块 'request' 返回一些符号而不是 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38882986/

相关文章:

javascript - Sencha 中的 Ext.Date.format()

JavaScript 匹配数组和拼接但失败

node.js - Mongoose 连接

arrays - forEach如何将多条数据保存到MongoDB中

node.js - Create-react-app npm run build 太慢

javascript - 顺序运行 NPM 脚本

javascript - 如何在 JavaScript 中调用自执行函数?

reactjs - npm 开始报错

javascript - Node Schedule是否产生/ fork 新进程

javascript - Sencha Touch 2 TabPanel active Item 点击