Node.js 节点js,某些网站的请求正文为空

Node.js 节点js,某些网站的请求正文为空,node.js,web-scraping,Node.js,Web Scraping,我正在试验Node.js和web抓取。在本例中,我试图从本地广播电台抓取最新的歌曲进行显示。对于此特定网站,body不返回任何内容。当我尝试使用谷歌或任何其他网站时,body有一个值。 这是我正在尝试的网站的一个功能吗 这是我的密码: var request = require('request'); var url = "http://www.radiomilwaukee.org"; request(url, function(err,resp,body) { if (!err &a

我正在试验Node.js和web抓取。在本例中,我试图从本地广播电台抓取最新的歌曲进行显示。对于此特定网站,
body
不返回任何内容。当我尝试使用谷歌或任何其他网站时,
body
有一个值。 这是我正在尝试的网站的一个功能吗

这是我的密码:

var request = require('request');

var url = "http://www.radiomilwaukee.org";
request(url, function(err,resp,body) {
    if (!err && resp.statusCode == 200) {
        console.log(body);
    }
    else
    {
        console.log(err);
    }

}))

这很奇怪,除非
accept encoding
标题设置为
gzip
,否则您请求的网站似乎不会返回任何内容。考虑到这一点,使用此要点将有效:

我在该要点中运行了代码,将URL替换为
”http://www.radiomilwaukee.org“
并在代码完成后查看
sample.html
文件中的内容

如果您希望在代码中访问网页的内容,可以执行以下操作:

// ...

req.on('response', function(res) {
    var body, encoding, unzipped;

    if (res.statusCode !== 200) throw new Error('Status not 200');

    encoding = res.headers['content-encoding'];
    if (encoding == 'gzip') {
        unzipped = res.pipe(zlib.createGunzip());
        unzipped.on("readable", function() {
            // collect the content in the body variable
            body += unzipped.read().toString();
        });
    }

    // ...