检测表现良好/众所周知的机器人

时间:2009-06-06 23:45:22

标签: bots googlebot

我发现这个问题非常有趣:Programmatic Bot Detection 我有一个非常相似的问题,但我并不担心'表现糟糕的机器人'。

我正在跟踪(除了谷歌分析)以下每次访问:

  • 条目网址
  • Referer的
  • 的UserAgent
  • Adwords(通过查询字符串)
  • 用户是否进行了购买

问题在于,要计算任何类型的转化率,我最终会遇到很多“机器人”访问,这会严重影响我的结果。

我想尽可能多地忽略机器人访问,但我想要一个我不需要过于密切监控的解决方案,而且这本身并不是一个性能损耗,如果有人有javascript已停用。

前100名机器人是否有好的发布名单?我确实在http://www.user-agents.org/找到了一个列表,但似乎包含数百个(如果不是数千个)机器人。我不想针对成千上万的链接检查每个引用者。

这是当前的googlebot UserAgent。它经常变化多少?

 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

2 个答案:

答案 0 :(得分:1)

您可以尝试导入Robots database off robotstxt.org并使用它来过滤掉这些用户代理的请求。可能与User-agents.org没什么不同,但至少robotstxt.org列表是“所有者提交的”(据说)。

该网站也链接到botsvsbrowsers.com,但我没有立即看到他们数据的可下载版本。

另外,你说

  

我不想针对成千上万的链接检查每个引用者。

这是公平的 - 但如果运行时性能是一个问题,只需“记录”每个请求并将其过滤为后处理(隔夜批处理,或作为报告查询的一部分)。

这一点也让我感到困惑

  如果有人禁用了javascript,

最好仍然可以使用。

您是在服务器端编写日志作为所服务的每个页面的一部分吗?在这种情况下,javascript不应该有任何区别(尽管显然禁用javascript的用户不会通过Google Analytics报告)。

P.S。提到robotstxt.org后,值得记住的是,表现良好的机器人会从您的网站根目录请求/robots.txt。也许您可以利用这些知识为您带来优势 - 通过记录/通知您可能想要排除的可能的机器人用户代理(尽管我不会自动在常规Web用户的情况下排除该UA在他们的浏览器中键入/robots.txt,这可能会导致您的代码忽略真实的人)。我认为这不会导致过多的维护费用......

答案 1 :(得分:0)

我意识到它可能实际上更容易与我尝试的完全相反。

select count(*) as count, useragent from sessionvisit 
where useragent not like '%firefox%' 
and useragent not like '%chrome%'
and useragent not like '%safari%'
and useragent not like '%msie%'
and useragent not like '%gecko%'
and useragent not like '%opera%'
group by useragent order by count desc

我实际上要做的是获得准确的转换率,并且似乎更有意义的是包含优秀的浏览器而不是排除机器人(良好或坏)。

此外,如果我发现“机器人”购买的“会话”,可能意味着有一个新的浏览器(想想镀铬)。目前我的机器人都没有购买!