Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services EC2实例是否可以设置为来自不同的IP范围?_Amazon Web Services_Amazon Ec2_Web Crawler - Fatal编程技术网

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

Amazon web services EC2实例是否可以设置为来自不同的IP范围?,amazon-web-services,amazon-ec2,web-crawler,Amazon Web Services,Amazon Ec2,Web Crawler,我需要运行一个网络爬虫程序,我想在EC2上运行,因为我希望HTTP请求来自不同的IP范围,这样我就不会被阻止。因此,我认为在EC2实例上分发这个可能会有所帮助,但我找不到任何关于出站IP范围的信息。我不想费心去弄清楚EC2和分布式数据的额外复杂性,结果发现所有实例都使用相同的地址块,我还是被服务器阻塞了 注意:这不适用于DoS攻击或其他攻击。我正试图为合法的商业目的收集数据,我尊重robots.txt,我每秒只发出一个请求,但主机仍在关闭我 评论员Paul Dixon认为,即使是我适度的爬行也会

我需要运行一个网络爬虫程序,我想在EC2上运行,因为我希望HTTP请求来自不同的IP范围,这样我就不会被阻止。因此,我认为在EC2实例上分发这个可能会有所帮助,但我找不到任何关于出站IP范围的信息。我不想费心去弄清楚EC2和分布式数据的额外复杂性,结果发现所有实例都使用相同的地址块,我还是被服务器阻塞了

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


评论员Paul Dixon认为,即使是我适度的爬行也会被阻挡,这表明主持人不希望我爬行它们,因此即使假设我可以绕过阻挡,我也不应该这样做。人们同意吗?

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

网站所有者很容易阻止来自EC2Land的所有请求,一些网站管理员已经开始这样做,因为EC2中运行着许多行为不端的机器人。因此,使用EC2可能不是解决问题的长期方案

一个请求/秒仍然相当快。超级礼貌是使用30秒的爬网延迟。在Bixo实验室,我们通常会以15秒的爬行延迟运行,甚至10秒的爬行延迟也会在某些站点引发问题

您还需要担心每天的总请求数,因为有些站点会对此进行监控。一个好的经验法则是不超过5000个请求/天/IP地址

最后,在EC2中使用多个服务器来绕过速率限制意味着你处于网络爬行的灰色地带,大部分人都是粘糊糊的角色,他们收集电子邮件地址、窃取内容并生成splog。所以仔细想想,如果你真的想住在那个社区。
如果主机检测到您的删除并关闭了您,也许您应该尊重他们的意愿,而不是将业务建立在它之上?FWIW,我曾经在pastebin.com上进行过这种阻止,看到EC2拥有的IP总是一个危险信号。您可以使用Tor,但也可以通过获取退出节点的动态列表并阻止这些IP来阻止。如果这是一个合法的业务问题,为什么不联系此主机的管理员?无论您如何分发您的实例,外部IP始终位于易于识别为EC2的范围内。感谢您提供的信息@保罗·迪克森:这是一个公平的观点,但如果这是他们的愿望,我认为他们应该在robots.txt中这样说。我将编辑这篇文章,提出道德问题,看看人们怎么想@斯福塞内格尔:我认为这是一家不会响应我要求的大公司。@Joshua没有办法阻止一大群行为恶劣的蜘蛛使用robots.txt从EC2过来。看起来你和那些坏蛋混在一起了。联系管理员或离开EC2似乎是唯一的选择。在技术问题上,我明白了,这些地址是在同一个子网中,所以它们显然是相互关联的?你能为他们安排多大的不同?关于道德问题,不,我不想和垃圾邮件发送者在一起,但另一方面,我收集这些信息是为了我的公司提供的服务,为付费客户增加价值。如果我们有一个大型的基础设施,我们可以自己分发爬网,但由于规模较小,我正在考虑如何实现它。小企业应该有办法进行合法的爬行。@Joshua EC2使用不同的子网,但所有子网都是可识别的。只需在任何IP地址上执行whois查找。由于大多数主机/防火墙不会使用whois数据来保护自己,因此您只能尝试查找WAN未被阻止的子网。不过我敢打赌,一旦有人注意到有爬虫从这个网络出来,这个网络就会被阻止。我想我可以试试这个,但我认为阻止整个子网是极端的,不会让主机区分有礼貌的爬虫做合理的请求,还有坏人。@Joshua:网站管理员只觉得有必要让谷歌抓取他们的网站。当其他人的使用模式开始令人讨厌时,他们就会被阻止。是的,这不好。不,他们不在乎。