是否可以在本地主机上设置 CORS Anywhere?

may*_*oni 3 codeigniter heroku web-scraping cors cors-anywhere

我正在构建一个网络抓取器作为一个小项目(使用CodeIgniter)。由于 CORS 政策,我无法从某些网站获取数据。

为了绕过这个问题,我使用 Rob Wu 的CORS Anywhere。我将cors_url添加到要从中抓取数据的 URL 前面。

一切正常,直到达到每小时 200 个请求的最大允许限制。点击 200 次后,我收到HTTP 状态代码:429请求过多)。

显示网络日志的屏幕截图。

根据文档,我们可以在Heroku上创建我们自己的 server.js 实例。但是,我想做的是,在本地 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...
    }
}
Run Code Online (Sandbox Code Playgroud)

pgu*_*rio 10

  • 安装最新的节点
  • 将存储库示例代码保存为 cors.js (我将其粘贴在下面)
  • npm install cors-anywhere
  • 运行node cors- 现在它正在 localhost: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);
});
Run Code Online (Sandbox Code Playgroud)