节点JS https请求套接字挂断(Mikeal /请求模块)

时间:2018-08-31 02:54:21

标签: node.js sockets

我是Node JS(v.10.9.0)的新手,并想制作一个简单的Web抓取工具,该工具可在此页面上获取球员的统计数据和排名。无论我无法在该网站上使用什么工具,我都尝试了多种请求方法,包括http.request和https.request,并且使每种方法都可以与'http://www.google.com'一起使用。但是,对此特定网站的每次尝试都会给我301错误或套接字挂起错误。 301错误给我的位置是相同的链接,但末尾带有“ /”,请求它会导致套接字挂起。我知道该站点在端口443上运行。某些站点是否只是阻止了节点js,为什么浏览器能够连接但不能连接此类东西?

请不要将我链接到我见过的所有其他线程,但它们都没有帮助

var request = require('request');

var options = {
    method: "GET",
    uri: 'https://www.smashboards.com',
    rejectUnauthorized: false,
    port: '443'
};

request(options, function (error, response, body) {
  console.log('error:', error); // Print the error if one occurred
  console.log('statusCode:'); // Print the response status code if a response was received
  console.log('body:', body); // Print the HTML for the Google homepage.
});

错误:

error: { Error: socket hang up
    at createHangUpError (_http_client.js:322:15)
    at TLSSocket.socketOnEnd (_http_client.js:425:23)
    at TLSSocket.emit (events.js:187:15)
    at endReadableNT (_stream_readable.js:1085:12)
    at process._tickCallback (internal/process/next_tick.js:63:19) code: 'ECONNRESET' }

编辑:

将此添加到我的选项对象中解决了我的问题

headers: {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' 
    }

1 个答案:

答案 0 :(得分:0)

在这里

我所做的只是添加:

nyc_taxi_data

对于我的选择对象,它运行良好。

新代码:

headers: {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' 
}

那12个小时以上我再也回不来了