Можно ли настроить CORS Anywhere на localhost? - PullRequest
0 голосов
/ 22 марта 2020

Я строю веб-скребок как небольшой проект (используя CodeIgniter ). Из-за политики CORS мне не разрешается получать данные с некоторых сайтов.

Чтобы обойти это, я использую CORS Anywhere Роба Ву. Я добавляю cors_url к URL, с которого я удаляю данные.

Все работает, пока я не достигну максимально допустимого предела в 200 запросов в час. После нажатия 200 раз я получаю код состояния HTTP: 429 ( Слишком много запросов ).

Снимок экрана, показывающий журнал сети.

Согласно документации, мы можем создать экземпляр нашего собственного сервера. js на Heroku . Но я хочу настроить его локально для моего локального Apache сервера ( localhost ), просто чтобы сначала проверить все.


Пример код:

var url = "http://example.com/";
var cors_url = "https://cors-anywhere.herokuapp.com/";

$.ajax({
    method:'GET',
    url : cors_url + url,
    success : function(response){
            //data_scraping_logic...
    }
}

1 Ответ

0 голосов
/ 24 марта 2020
  • Установите последний узел
  • сохраните пример кода репо как корс. js (я вставлю его ниже)
  • do npm install cors-anywhere
  • run node cors - теперь он работает на локальном хосте: 8080

пример кода

// Listen on a specific host via the HOST environment variable
var host = process.env.HOST || '0.0.0.0';
// Listen on a specific port via the PORT environment variable
var port = process.env.PORT || 8080;

var cors_proxy = require('cors-anywhere');
cors_proxy.createServer({
    originWhitelist: [], // Allow all origins
    // requireHeader: ['origin', 'x-requested-with'],
    // removeHeaders: ['cookie', 'cookie2']
}).listen(port, host, function() {
    console.log('Running CORS Anywhere on ' + host + ':' + port);
});
...