【发布时间】:2020-03-24 07:50:53
【问题描述】:
我正在构建一个网络爬虫作为一个小项目(使用CodeIgniter)。由于 CORS 政策,我不能从某些网站获取数据。
为了绕过它,我使用的是 Rob Wu 的 CORS Anywhere。我将 cors_url 添加到我要从中抓取数据的 URL 之前。
在我达到每小时 200 个请求的最大允许限制之前,一切正常。在点击 200 次后,我得到了一个 HTTP status code: 429(Too many requests)。
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...
}
}
【问题讨论】:
-
您只需保存示例 cors 服务器代码并使用节点运行它。
-
你能澄清更多吗?如何使用 CodeIgniter 做到这一点?我对这个概念完全陌生。
-
我相信 cors-anywhere 内置了速率限制。该限制是从 process.env 访问的,所以我不知道为什么它仍然有效。
标签: codeigniter heroku web-scraping cors cors-anywhere