如何处理机器人来计算综合浏览量

时间:2018-04-09 09:41:35

标签: algorithm automation bots

我不知道如何处理这种情况。我有一个目录,我计算每个项目的综合浏览量。对于经过身份验证的用户,在请求之间延迟200秒后,我只计算为新的综合浏览量。对于未经身份验证的用户,我使用IP并且还有200秒的延迟。

我使用redis SETEX进行验证,然后密钥将在200秒后过期。如果密钥不存在,则插入新的页面视图。

像这样的东西

  • item_id:user_id(经过身份验证的用户)
  • item_id:ip(未经身份验证的用户)

嗯,这可以正常工作,直到用户尝试有意增加特定项目的页面浏览量。我昨天只对特定项目有近3000次观看(去年该页面只有150次观看......)。因此,他创建了一些机器人来延迟访问该页面以避免我的验证。

我需要注册合法的综合浏览量,但我需要避免欺诈类型。任何的想法?

4 个答案:

答案 0 :(得分:2)

据我所知,处理机器人的最佳方式是 Google Analytics

  

Google Analytics的工作原理是将JavaScript代码段插入   你网站的标题。每当a。时,此代码段会对页面视图进行计数   访问者触发JavaScript,大多数机器人不处理   的JavaScript。

答案 1 :(得分:0)

您可以在应用程序中集成某种CAPTCHA,以限制用户在特定时间内查看页面的次数。

在同一用户或IP的给定持续时间(比如,3分钟内的20个视图)内设定数量的视图时,让他们在以后每次尝试查看时验证CAPTCHA页。

答案 2 :(得分:0)

为每个网页浏览请求发出Token。将令牌存储在Cookie中。

将您已有的IP或USER_ID用作过滤机制。

加载页面后,使用Cookie中的tokenold_tokenOperating SystemBrowser NameIP / User_ID来验证请求。

提供两个不同的时间,如200秒的到期时间和3600秒的宽限时间,如果上述任何数据在宽限时间内匹配,请不要计算页面视图。

您还可以通过在宽限期内跟踪网页浏览量来扩展此功能,并创建一些方法来验证网页浏览请求。

答案 3 :(得分:0)

我通常会将请求时间与请求时间一起注册,以测量每个特定时间跨度的访问频率和访问者计数 当您使用item_iduser_idiptimestamp注册所有请求时,您可以通过user_id对其进行分组来处理注册,iptimestamp 通过这种方式,您可以找出每秒点击量,并识别并排除那些明显超过正常活动模式而不会丢失数据的人。

我经常使用网络服务日志按小时,每天甚至每月为某些网址生成有关访问频率的统计信息。