如何在下载脚本中阻止机器人

时间:2011-08-17 06:30:45

标签: php bots

我创建了一个下载脚本,让用户在下载自动启动前等待五秒,并计算下载量。这很简单。现在我需要找到一种方法来阻止僵尸程序,因为我希望下载计数尽可能真实,这意味着我希望它只计算实际下载的用户而不是机器人。某处是否有机器人列表或只是一种方法来做我必须做的事情?感谢。

5 个答案:

答案 0 :(得分:3)

普通“机器人”无法运行javascript,因此无法等待(下载)。

如果你担心有机器人知道“javascript”,你可以添加capcha

答案 1 :(得分:2)

表现良好的机器人应该尊重robots.txt,这样您就可以指示机器人如何抓取您的网站。

你不能可靠地阻止不良行为的机器人(像人们所建议的那样尝试人体检测,例如验证码)。即使许多机器人设置了一个特殊的用户代理(你可以看到examples here),机器人也可以将用户代理设置为它想要的任何东西。

答案 2 :(得分:1)

使用验证码。我建议你使用Recaptcha

答案 3 :(得分:1)

您可以使用各种方法来摆脱僵尸程序,但它们也会过滤掉一些真实用户:

  • 仅允许发送可接受的User-Agent字符串的客户端。
  • 仅允许启用了JavaScript的客户端。
  • 仅允许启用了Cookie的客户端。
  • 仅允许客户取消选中“我是机器人”复选框。
  • 仅允许未填写honeypot text input
  • 的客户
  • 有一个CAPTCHA(这是由讨厌他们的用户并且不尊重他们的网站管理员使用;仅建议用于虐待狂和混蛋)

您可以选择或组合它们来创造自己的机器人歧视风格。

答案 4 :(得分:0)