是否可以在本地主机上设置 CORS Anywhere?
Is it possible to setup CORS Anywhere on localhost?
我正在构建一个网络抓取工具作为一个小项目(使用 CodeIgniter)。由于 CORS 政策,我不允许从某些站点获取数据。
为了绕过它,我正在使用 Rob Wu 的 CORS Anywhere. I'm prepending the cors_url 到 URL 我正在从中抓取数据。
一切正常,直到我达到每小时 200 个请求的最大允许限制。点击 200 次后,我得到一个 HTTP status code: 429(请求过多)。
Screenshot showing Network log.
根据文档,我们可以在 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...
}
}
- 安装最新节点
- 将 repo 示例代码保存为 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);
});
我正在构建一个网络抓取工具作为一个小项目(使用 CodeIgniter)。由于 CORS 政策,我不允许从某些站点获取数据。
为了绕过它,我正在使用 Rob Wu 的 CORS Anywhere. I'm prepending the cors_url 到 URL 我正在从中抓取数据。
一切正常,直到我达到每小时 200 个请求的最大允许限制。点击 200 次后,我得到一个 HTTP status code: 429(请求过多)。
Screenshot showing Network log.
根据文档,我们可以在 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...
}
}
- 安装最新节点
- 将 repo 示例代码保存为 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);
});