Возможно, Heroku не отправляет заголовок запроса - PullRequest
0 голосов
/ 14 мая 2018

Существует следующий скрипт ( 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 ?

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