EC2实例是否可以设置为来自不同的IP范围?

EC2实例是否可以设置为来自不同的IP范围?

问题描述:

我需要运行一个网络爬虫,并且我想从EC2开始,因为我想让HTTP请求来自不同的IP范围,所以我不会被阻止。所以我认为在EC2实例上发布它可能会有所帮助,但是我找不到有关出站IP范围的信息。我不想花时间去计算EC2和分布式数据的额外复杂性,只发现所有的实例都使用相同的地址块,而且无论如何我都会被服务器阻塞。EC2实例是否可以设置为来自不同的IP范围?

注意:这不适用于DoS攻击或任何其他攻击。我试图为了合法的商业目的收集数据,我尊重robots.txt,并且每秒只发出一个请求,但主持人仍然关闭我。

评论者Paul Dixon建议,阻止即使我的谦虚爬行的行为表明主机不希望我抓取它们,因此我不应该这样做(即使假设我可以解决阻塞问题)。人们是否同意这一点?

+1

如果主人正在检测你的刮蹭和关闭你,也许你应该尊重他们的愿望,而不是基于它的业务? – 2010-06-03 12:57:10

+0

FWIW,我曾经在pastebin.com上做过这种*,看到EC2拥有的IP永远是红旗。你可以使用Tor,但是可以通过获取一个动态的退出节点列表并阻止这些ips来阻止它。 – 2010-06-03 12:58:58

+3

如果这是一个合法的业务问题,为什么不联系该主机的管理员?外部IP始终来自易于识别为EC2的范围,无论您如何分配实例。 – sfussenegger 2010-06-03 13:00:51

首先,答案是肯定的,每个EC2实例都有自己的IP地址。现在,在一些评论:

  • 很容易让网站所有者阻止EC2土地所有请求,而一些站长已经开始这样做,由于在EC2上运行很多性能欠佳的机器人。所以使用EC2可能不是您的问题的长期解决方案。

  • 一个请求/秒仍然很快。超级礼貌使用30秒的爬行延迟。在Bixo实验室,我们通常以15秒的爬行延迟运行 - 即使10秒开始在某些站点引发问题。

  • 您还需要担心总请求/天,因为有些网站会监视它。一个好的经验法则是不超过5000个请求/天/ IP地址。

  • 最后,在EC2中使用多个服务器来避开限速意味着您处于网络爬行的灰色区域,大部分人都是由粘糊糊的人物收集电子邮件地址,剥去内容并生成splog。所以仔细考虑一下你是否真的想住在那个社区里。

+0

在技​​术问题上,就我所知,这些地址是否在同一子网中,因此它们显然是相互关联的?你可以安排他们有多不同? 关于道德问题,不,我不想与垃圾邮件发送者在一起,但另一方面,我收集了我的公司提供的服务的这些信息,为付费客户增加了价值。如果我们有一个庞大的基础设施,我们可以自己分发抓取,但是很小,我正在考虑如何实现抓取。应该有一种方法可以让小型企业进行合法爬取。 – 2010-06-03 17:40:13

+0

@Joshua EC2使用不同的子网,但它们都是可识别的。只需在任何IP地址上进行whois查询。由于大多数主机/防火墙不会使用whois数据来保护自己,您可能只会尝试查找未被阻止的子网。我敢打赌,只要有人注意到一个爬虫来自它,这个网络就会被阻止。 – sfussenegger 2010-06-04 08:32:56

+0

我想我可以试试这个,但我认为阻止整个子网是极端的,并且不会让主机区分做出合理请求的恭敬的爬虫和坏人。 – 2010-06-04 18:26:11