2016-08-10 8 views
0

Я учусь Nodejs, и попытаться сделать веб слом с node.jsNodeJS модуль «запрос» возвращает некоторые символы вместо HTML

Я использую модуль узла request и cheerio

, но когда я просить 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

Может кто-нибудь скажет мне В чем проблема?

Спасибо

+0

Что находится в 'res.headers ['content-type']'? – mscdex

+0

'res.headers' is ' {server: 'nginx/1.0.15', дата: 'Wed, 10 Aug 2016 13:12:46 GMT', 'content-type': 'text/html; charset = utf-8 ', ' transfer-encoding ':' chunked ', connection:' close ', ' cache-control ':' max-age = 3600 ', pragma:' no-cache ', истекает: 'Wed, 10 Aug 2016 21:31:15 GMT', 'content-encoding': 'gzip', различный: 'Accept-Encoding', 'x-cache': 'HIT'} ' – MaxySpark

ответ

3

Проблема заключается в том, что сервер посылает сжатый ответ, даже если вы не запрашивает сжатый ответ.

Простым решением является просто добавить gzip: true в ваши request() варианты, которые не только автоматически декомпрессируют ответы, но также отправят соответствующий заголовок Accept-Encoding на сервер.

 Смежные вопросы

  • Нет связанных вопросов^_^