2012-07-25 17 views
2

我开始使用Ruby的机械化宝石,我想知道是否有任何一个Web服务器可以检测和阻止机械化代理的活动?如何阻止来自Ruby Mechanize Gem的访问?

如果是,代码或步骤是什么?阻止机械化报废或访问网站?

+1

你总是可以拔掉你的服务器。 – pguardiario 2012-07-26 01:50:32

+0

拔下服务器的以太网或电源? – 2013-08-19 19:46:21

回答

0

您可以放置​​一个robots.txt文件,并希望人们尊重它。

如果您通过User-Agent字符串开始阻止,他们可以假装成IE。

2

有多种方式,他们可以检测一个自动化的过程是打他们的网站:

  • 他们可以检查用户代理字符串。
  • 他们可以看到你的要求。浏览器请求HTML页面中的所有图像和CSS。机械化不会默认。
  • 一个人暂停阅读一页并理解它说什么。一段代码不会被编程为暂停,它将以全速运行,因此请求会很快跟上。

这些不一定指向机械化运行,而是指向代码抓取站点的指纹。

他们可以做些什么呢?

  • 禁止该用户代理。
  • 禁止来自您的IP号码或域或子网的任何请求。
  • 禁止来自您的IP号码,域或子网的任何请求发生得太快。

根据服务器和网络硬件的不同,有很多不同的方法可以解决这些问题。

这个问题是非常题外话了StackOverflow的,而且也应该问上https://serverfault.com/https://webmasters.stackexchange.com/

+0

我正在做机械化的网络刮板,你知道如何避免这些锁?我有一个网站,并返回给我一个403错误(我试着用一个新的IP,但它是一样的) – 2013-12-17 20:48:30

+0

你最好的选择是阅读他们的服务条款,并检查他们的支持,看看他们是否有条款做你想要做什么,通过某个服务器或使用API​​。我不会帮你避开他们的障碍,因为那是你们的问题;当我不知道你在用他们的页面和/或内容做什么时,我无意以任何方式参与其中。 – 2013-12-17 21:17:28

+0

是公开的信息,但他们没有API :(我认为他们阻止我,因为我正在学习如何获取网站,我淹没服务器xD,然后我使用计时器,但它为时已晚。 – 2013-12-17 21:26:14