Узел JS https запрос сокета зависает (mikeal / модуль запроса) - PullRequest
0 голосов
/ 31 августа 2018

Я новичок в Node JS (v.10.9.0) и хотел создать простой инструмент для просмотра веб-страниц, который получает статистику и рейтинг игроков на этой странице. Независимо от того, что я не могу заставить его работать с этим сайтом, я пробовал несколько методов запроса, включая 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' }

EDIT:

Добавление этого в мой объект параметров исправило мою проблему

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 голосов
/ 31 августа 2018

OP Здесь

Все, что я сделал, это добавил:

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' 
}

На мой выбор Объект и он отлично работает.

Новый код:

var request = require('request');

var options = {
    method: 'GET',
    uri: 'https://www.smashboards.com',
    rejectUnauthorized: false,
    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' 
    }
};
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.
});

То есть 12+ часов, я никогда не вернусь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...