如何制作网页,使其无法被机器人刮掉?

时间:2012-06-12 11:49:55

标签: web-scraping

这个问题得出了答案here

因此,我的问题是可以采取哪些措施来消除标准刮刀?

5 个答案:

答案 0 :(得分:1)

你问题中的关键词是“标准”的scapers。

没有办法阻止所有可能的机器人抓取您的网站,因为他们可能只是作为普通访客。

对于“好”机器人,robots.txtMETA tag中的一个或两个指定机器人是否可以索引内容和/或跟踪链接:

<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">

对于“坏”的,你必须抓住它们并用IP,请求/引用标题等组合阻止它们。

答案 1 :(得分:1)

  • 使用CAPTCHA
  • 分析流量(从您的网页请求的位置和频率)
  • 显示混合图片的文字
  • 使用更多客户端数据处理(JavaScript,Java,Flash)

答案 2 :(得分:1)

除了之前提到的robots.txtrobots meta tag以及使用更多javascript之外,我所知道的最有把握的方法之一是将受限制的内容置于用户登录之后。这将限制除特制之外的所有机器人。为用户登录添加一个强大的验证码(如reCAPTCHA),也会阻止专用机器人。

如果某个网站正在寻找验证客户端的身份(即:包括它是否是机器人),那就是用户登录的用途。 :)

如果检测到奇怪的活动,也可以禁用用户登录。

答案 3 :(得分:0)

只需放置一个类似

的元标记即可
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">

这告诉机器人他可能不会为您的网站编制索引。

答案 4 :(得分:0)

如果您可以对请求进行服务器端处理,则可以分析用户代理字符串,并在检测到刮刀时返回403。这不是万无一失的。不道德的刮刀可以使用标准的浏览器用户代理来欺骗您的代码。误报会使您的网站拒绝真实用户。您最终可能会拒绝搜索引擎访问您的网页。

但是,如果您能识别“标准刮刀”,那么这将成为控制不遵守机器人标签的刮刀访问的另一种工具。