0

我发现这个问题非常有趣:Programmatic Bot Detection 我有一个非常相似的问题,但我并不担心“行为不端的机器人”。

每次访问我都会跟踪(除了谷歌分析)以下内容:

  • 输入网址
  • 推荐人
  • 用户代理
  • Adwords(通过查询字符串)
  • 用户是否购买
  • 等等

问题是,为了计算任何类型的转化率,我最终都会得到大量“机器人”访问,这些访问极大地扭曲了我的结果。

我想忽略尽可能多的机器人访问,但我想要一个不需要太密切监视的解决方案,而且它本身不会成为性能问题,如果有人禁用了 javascript,最好仍然可以工作。

有没有好的公布的前 100 名机器人列表?我确实在http://www.user-agents.org/找到了一个列表,但它似乎包含数百个甚至数千个机器人。我不想检查每个引用者与数千个链接。

这是当前的 googlebot UserAgent。它多久改变一次?

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

2 回答 2

1

您可以尝试从 robotstxt.org 导入机器人数据库,并使用它来过滤来自这些用户代理的请求。可能与 User-agents.org 没有太大不同,但至少 robotstxt.org 列表是“所有者提交的”(据说)。

该站点还链接到botsvsbrowsers.com ,尽管我没有立即看到他们数据的可下载版本。

还有,你说

我不想检查每个引用者与数千个链接。

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

这一点也让我有点困惑

如果有人禁用了javascript,最好仍然可以使用。

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

ps 提到 robotstxt.org,值得记住的是,行为良好的机器人会/robots.txt从您的网站根目录请求。也许您可以利用这些知识来发挥自己的优势 - 通过记录/通知您可能想要排除的机器人用户代理(尽管我不会自动排除该 UA,以防常规网络用户将 /robots.txt 输入到他们的浏览器,这可能会导致您的代码忽略真实的人)。我认为随着时间的推移,这不会导致过多的维护开销......

于 2009-06-07T00:49:36.543 回答
0

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

IE

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

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

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

于 2009-06-07T07:46:19.063 回答