2016-08-10 2 views
0

ich NodeJS lerne, und versuche, Web zu tun mit node.js VerschrottungNodeJS Modul 'request' gibt einige Symbole statt html

I Knotenmodul request und cheerio

verwenden, aber wenn ich die Anfrage url es gibt einige Symbol anstelle des html Körper

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); 
     } 
}); 

Ausgang in Eingabeaufforderung

enter image description here

Kann mir bitte jemand sagen Was ist das Problem hier?

Danke

+0

Was ist in 'res.headers ['content-type']' '? – mscdex

+0

'res.headers' ist ' {server: 'nginx/1.0.15', Datum: 'Mi, 10 Aug 2016 13:12:46 GMT', 'Inhaltstyp': 'text/html; charset = utf-8 ', ' Transfercodierung ':' chunked ', Verbindung:' close ', ' Cache-Kontrolle ':' max-age = 3600 ', Pragma:' No-Cache ', abläuft: 'Wed, 10 Aug 2016 21:31:15 GMT', 'content-encoding': 'gzip', variieren: 'Accept-Encoding', 'x-cache': 'HIT'} ' – MaxySpark

Antwort

3

Das Problem ist, dass der Server eine komprimierte Antwort sendet, auch wenn Sie eine komprimierte Antwort nicht anfordern.

Die einfache Lösung ist nur gzip: true zu Ihren request() Optionen hinzufügen, die automatisch nicht nur Antworten dekomprimieren, sondern auch die entsprechenden Accept-Encoding Header an den Server senden.

Verwandte Themen