如何阻止来自Ruby Mechanize Gem的访问?

时间:2012-07-25 05:47:37

标签: ruby screen-scraping web-scraping mechanize mechanize-ruby

我开始在Ruby中使用Mechanize gem,我想知道Web服务器是否可以检测并阻止来自Mechanize代理的活动?

如果是,阻止Mechanize废弃或访问网站的代码是什么?

2 个答案:

答案 0 :(得分:2)

他们可以通过多种方式检测到自动流程正在访问其网站:

  • 他们可以检查用户代理字符串。
  • 他们可以看到您的要求。浏览器请求HTML页面中的所有图像和CSS。默认情况下不会使用Mechanize。
  • 人类停下来阅读页面并理解它的内容。一段代码没有,除非它被编程为暂停它将全速运行所以请求一个接一个地快速跟进。

这些并不一定指向Mechanize运行,而是代码抓取网站的指纹。

他们能做些什么呢?

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

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

对于StackOverflow,这个问题非常偏离主题,可能应该在https://serverfault.com/https://webmasters.stackexchange.com/

上询问

答案 1 :(得分:0)

你可以提出一个robots.txt文件,希望人们尊重它。

如果你开始按用户代理字符串阻止,他们可以假装是IE。