Я новичок в 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'
}