可以根据定期间隔分析算法,以检查机器人和蜘蛛

时间:2011-02-24 09:55:11

标签: php apache analytics web-crawler bots

我正在尝试构建一个脚本,向我显示一个名为bot / spiders的IP列表。

我写了一个脚本,它将Apache的访问日志导入mysql数据库,所以我可以尝试使用php和mysql来管理它。

我注意到很多机器人都有定期的间隔,他们每2或3秒发出一次请求。有没有一种简单的方法来显示这些模式与查询或PHP脚本?或者,我认为,更难以识别这些机器人/蜘蛛的算法。

DB:

CREATE TABLE IF NOT EXISTS `access_log` (
  `IP` varchar(16) NOT NULL,
  `datetime` datetime NOT NULL,
  `method` varchar(255) NOT NULL,
  `status` varchar(255) NOT NULL,
  `referrer` varchar(255) NOT NULL,
  `agent` varchar(255) NOT NULL,
  `site` smallint(6) NOT NULL
);

1 个答案:

答案 0 :(得分:0)

官方机器人会识别自己。 http://www.robotstxt.org/db.html

上有一个列表

对于非官方的,我猜你可以尝试寻找下面的一些内容:

  • 没有其他资源请求的页面请求(图像,CSS和JavaScript等)
  • 奇怪的URL请求(登录页面请求的批次,特别是那些不存在的请求,例如drupal站点上的wp-admin)
  • 在短时间内连续查看页面
  • 来自许多不同IP的
  • 的URL签名完全相同
  • 没有您以前从未见过的IP的HTTP引用
  • 很多评论帖子在短期内发布
  • 来自公共代理服务器的请求

这是我注意到的一些令人讨厌的ba * * * s的东西,它总是试图刮擦我的网站并发送垃圾邮件。其中一些可能需要组合才能过滤掉具有相同特征的实际请求。