Подключите нашего Telegram-бота для уведомлений о новых проектах

Починить nodejs скрейпер

E
Заказчик
Отзывы фрилансеров: + 11 - 0
Зарегистрирован на сайте 13 лет и 3 месяца
Бюджет: 1500 руб
14.90 $ — 14.14 €
Есть задача – через nodejs скачивать главную страницу сайта и открывать ее (macys.com).
Через curl сайт открывается, с этого же сервера через nodejs request – не открывается (выдает forbidden – детектится фаерволлом).
Требуется разобраться, почему. Задача запустить puppeteer не стоит, хотелось бы разобраться в чем отличие между curl и nodejs запросом – запускаются с одной машины, расположенной в NYC. 

Пример кода который работает и скачивает сайт:
const {execSync} = require('child_process');
const command = `curl 'URL' -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36' -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/si gned-exchange;v=b3' -H 'accept-encoding: deflate, gzip' -H 'accept-language: en-US,en;q=0.9,nl;q=0.8,pt;q=0.7,ru;q=0.6,es;q=0.5' --compressed --insecure --proxy-insecure -ivs > ~/1.txt `;

execSync(command).toString();

код который не работает:
var https = require("https");
var fs = require("fs");




var headers = {
'authority': 'www.macys.com',
'pragma': 'no-cache',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,applicat ion/signed-exchange;v=b3',
'accept-encoding': 'deflate, gzip',
'accept-language': 'en-US,en;q=0.9,nl;q=0.8,pt;q=0.7,ru;q=0.6,es;q=0.5'
};

var options = {
host: 'www.macys.com',
port: 443,
path: '/',
method: 'GET',
headers: headers
};



console.log(options);


var req = https.request(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});

req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});

// write data to request body
req.write('datan');
req.write('datan');
req.end();




ОЖИДАЕМЫЙ РЕЗУЛЬТАТ РАБОТЫ:
1) js script для nodejs v10.16 , использующий встроенные библиотеки nodejs (http / https) который успешно запускается на ubuntu 18.04 и скачивает главную страницу macys.com будучи запущенным из региона NYC 
2) внятное объяснение, почему это работает, а вышеупомянутый скрипт – нет
Разделы:
Опубликован:
24.07.2019 | 14:25

Теги: нужен программист, ищу программиста, резюме программиста, требуется написание плагинов/сценариев/утилит

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».