Существует следующий скрипт ( one-request.js )
#!/usr/bin/env node
var request = require('request');
const cheerio = require('cheerio');
var options = {
url: 'https://www.accuweather.com/en/us/anchorage-ak/99501/daily-weather-forecast/346835?day=1', // Anchorage
headers: {
'User-Agent':'Web/2.0',
'Connection':'keep-alive'
}
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(body);
var title = $('div#header-logo > a:first-child > span').text();
console.log('title:',title); // title: Anchorage Daily Weather
}
}
request(options, callback);
Он выполняется на домашнем компьютере ( узел one-request.js )и получает успешный ответ.
Однако при выполнении сценария в Heroku ( heroku запустите one-request.js ) ответа нет.Тот же эффект получается при запуске скрипта на домашнем компьютере, если в запросе удалены заголовки.Поэтому я предполагаю, что проблема заключается в формировании заголовков в Heroku (также проверена версия 'User-Agent': 'Mozilla / 5.0 (X11; Ubuntu; Linux x86_64; rv: 59.0) Gecko / 20100101 Firefox / 59.0.
Тот же эффект).
Если запрашиваемый адрес не требует заголовков (для других сайтов),Результаты сценария одинаково успешны как для дома, так и для Heroku.
Как сделать запрос в Heroku ?