Node.js https.request没有抓住整个网站

时间:2016-12-10 03:09:34

标签: node.js

我一直在使用请求(npm安装请求)使用以下代码从网页抓取HTML:

request("https://www.futbin.com" + "/17/player/3", function(error, response, full) {
    console.log(full);
});

在今天之前,这完美无缺。现在,每次我运行此请求时,它都会在我真正想要的数据之前完全切断

最后一行输出:http://puu.sh/sKdU9/a93cd8fbcd.png
网站的相关部分(突出显示我想要抓取的内容):http://puu.sh/sKdW4/c7d87ec682.png

当把它推到Heroku时,请求本身就完美无缺。在我的应用程序中运行但是在今天完美运行之前,它会做同样的事情并在图片HTML之前切断。

我还在没有请求库的情况下尝试使用以下代码:

var https = require('https');

var options = {
  host: 'www.futbin.com',
  path: '/17/player/3',
};

callback = function(response) {
  var str = ''
  response.on('data', function (chunk) {
    str += chunk;
  });

  response.on('end', function () {
    console.log(str);
  });
}

var req = https.request(options, callback);
req.end();

完全相同的事情发生了。

没有错误被抛出,它总是为空。

要点:

仅限我的电脑请求:在图片之前切断 我的电脑完整应用:在图片之前切断 仅限Heroku请求:成功
Heroku完整应用:在图片之前切断

什么会导致请求像这样停止?

1 个答案:

答案 0 :(得分:2)

似乎是一个与ssl相关的问题。如果您尝试使用curl加载网站,则会遇到同样的问题。 Curl将停止在html代码中的同一行,并抱怨tls错误。但是如果您在打开gzip压缩的情况下转移网站,它将会正常加载。