首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >托管爬虫的最佳解决方案?

托管爬虫的最佳解决方案?
EN

Stack Overflow用户
提问于 2014-03-06 10:17:32
回答 1查看 3.2K关注 0票数 10

我有一个爬虫,爬行几个不同的领域为新的帖子/内容。总内容数为十万页,每天都有很多新的内容添加。因此,为了能够通过所有这些内容,我需要我的爬虫爬行24/7。

目前,我将爬虫脚本托管在与爬虫添加内容的站点相同的服务器上,而且我只能在夜间运行cron作业来运行脚本,因为当我这样做时,网站基本上停止工作,因为脚本的加载。换句话说,一个非常糟糕的解决方案。

所以基本上,我想知道对于这种解决方案,我的最佳选择是什么?

  • 是否有可能继续从同一主机运行爬虫,但在某种程度上平衡负载,以便脚本不会扼杀网站?
  • 我会找什么样的主机/服务器来托管爬虫?除了普通的网络主机,我还需要其他的规范吗?
  • 爬虫保存它爬行的图像。如果我将爬虫托管在辅助服务器上,如何将图像保存在站点的服务器上?我想我不想让CHMOD 777在我的上传文件夹和允许任何人将文件放在我的服务器上。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-16 05:36:22

我决定选择作为我的爬虫的宿主,在那里,它们都有用于队列的SQS,但也有自动可伸缩的实例。它也有S3,我可以在那里存储我所有的图像。

我还决定将我的整个爬虫重写为Python,而不是PHP,以便更容易地利用诸如队列之类的功能,并使应用程序100%运行,而不是使用cronjobs。

所以我做了什么,这意味着什么

  1. 我为我的爬虫设置了一个弹性Bean秸秆应用程序,它被设置为"Worker“,并在SQS中存储需要爬行的所有域。SQS是一个“队列”,我可以保存每个需要爬行的域,爬虫将侦听队列并每次获取一个域,直到队列完成为止。不需要“cron作业”或诸如此类的东西,只要队列将数据放入其中,就会将其发送给爬虫。这意味着爬虫是100%的时间,24/7。
  2. 应用程序被设置为自动缩放,这意味着当队列中有太多域时,它将设置第二、第三、第四等等.实例/爬行器,以加快进程。我认为这对任何想要建立爬虫的人来说都是非常重要的一点。
  3. 所有图像都保存在S3实例中。这意味着图像不会保存在爬行器的服务器上,而且很容易被抓取和处理。

结果很好。当我每15分钟在cron作业上运行一次per时,我可以每小时爬行大约600个urls。现在,我可以毫无问题地每小时爬行10,000多个urls,更多地取决于我如何设置自动缩放。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22221414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档