bra*_*don 10 distributed-computing web-crawler
我正在开发一个Web爬虫,它可以为不想编入索引的站点编制索引.
我的第一次尝试:我编写了ac#crawler,遍历每一页并下载它们.这导致我的IP在10分钟内被其服务器阻止.
我将它移动到亚马逊EC2并编写了一个运行大约50个实例的分布式python脚本.这仍然高于启动我的门槛.每月花费约1900美元......
我回到了我最初的想法并把它放在缩短版的TOR网络上.这很有效,但速度很慢.
我没有想法.如何通过他们阻止我重复请求.
我说"阻止"他们实际上是在一个肯定存在的页面上给我一个随机的404未找到的错误.它是随机的,只有在我在一小时内传递大约300个请求后才开始发生.
Kir*_*ril 13
好的,首要的是:如果一个网站不希望你经常抓取它,那么你不应该!这是基本的礼貌,你应该总是努力坚持它.
但是,我确实知道有一些网站,比如Google,通过整天抓取您的网站来赚钱,当您尝试抓取Google时,他们会阻止您.
在任何情况下,获得一堆EC2机器的替代方案是获取代理服务器.代理服务器比EC2,case和point便宜很多:http: //5socks.net/en_proxy_socks_tarifs.htm
当然,代理服务器的速度不如EC2(带宽方面)快,但是你应该能够达到与50 EC2实例相比或更高吞吐量的平衡,远远低于你现在支付的费用.这涉及到您搜索价格合理的代理并找到能够为您提供类似结果的代理.这里要注意的是,就像你一样,可能有其他人使用代理服务来抓取你正在抓取的网站,他们可能不会如何抓取它们,因此整个代理服务可能会被阻止到期代理服务的其他客户的活动(我亲眼看到它).
这有点疯狂,我没有在这背后做数学,但你可以自己开始代理服务并向其他人出售代理服务.无论如何,您无法使用所有EC2机器的带宽,因此降低成本的最佳方式是执行亚马逊所做的事情:分租硬件.
| 归档时间: |
|
| 查看次数: |
9003 次 |
| 最近记录: |