【问题标题】:How handle bot to count pageviews如何处理机器人来计算网页浏览量
【发布时间】:2018-09-18 16:10:30
【问题描述】:

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

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

像这样的

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

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

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

【问题讨论】:

  • 这个问题很自以为是,不太适合 Stack Overflow。
  • 不过:您可以通过更改“页面浏览量”的定义来避免欺诈。一些众所周知的测量页面浏览量的工具,如谷歌分析,使用超时来避免双重浏览量,但也显示独特点击(不计算会话中的双重点击)之类的东西,除此之外,它们还记录其他流量信息,例如用户代理,通常可以用来避免某些(搜索)机器人。然而,防止垃圾邮件即使不是不可能也是非常困难的,因为机器人可以很容易地伪装成人类,除非您构建一些人工验证系统,例如验证码。
  • 您对欺诈的定义是什么?您创建了一个规则来过滤相隔不到 200 秒的请求,但似乎这不是将“欺诈”视图与“合法”视图区分开来的规则。如果您准确地指定您的“欺诈”定义,您可以设计一个适当的过滤器,例如:max. 2 次观看/小时,最多每天 4 次,每月最多 8 次。
  • @TomLankhorst 目前我对欺诈没有确切的定义。但是当我每 X 秒在日志中看到一个请求时,我知道这对于真实用户来说不是正常行为。但是,创建一个规则来确定请求是否连续并按身份分组并不容易。

标签: algorithm automation bots


【解决方案1】:

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

Google Analytics 通过将 JavaScript sn-p 插入 您网站的标题。这个 sn-p 计算一次页面浏览量 访问者触发 JavaScript,大多数机器人不处理 JavaScript。

【讨论】:

  • 这不是一个选项。我只想要像 stackoverflow 这样的东西必须计算浏览量
  • 在 SO 中,计数的度量是 IP 地址。您可以在两种状态下(登录后和注销后)检查您的问题页面并查看结果。
【解决方案2】:

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

如果同一用户或 IP 在给定时间段内获得一定数量的观看次数(例如,在 3 分钟内获得 20 次观看),则让他们在以后每次尝试查看验证码时验证 CAPTCHA页面。

【讨论】:

    【解决方案3】:

    为每个页面查看请求发出Token。将令牌存储在 Cookie 中。

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

    页面加载后,使用 cookie 中的 token、old_token、Operating System、Browser Name 和 IP / User_ID 来验证请求。

    给两个不同的计时,比如200秒的过期时间和3600秒的宽限时间,如果以上数据在宽限时间内匹配,则不计入页面浏览量。

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

    【讨论】:

      【解决方案4】:

      我通常将请求时间与请求一起注册,以测量每个时间跨度的访问频率和访问者数量。
      当您注册带有item_id、user_id、ip 和timestamp 的所有请求时,您可以随后通过将它们按user_id、ip 和timestamp 分组来处理寄存器。 这样您就可以找出每秒的点击量,并识别和排除那些清除超过正常活动模式的人,而不会丢失数据。

      我经常使用 Web 服务日志来生成有关每小时、每天甚至每月访问某些 URL 的频率的统计信息。

      【讨论】:

        猜你喜欢
        • 2018-07-21
        • 1970-01-01
        • 2020-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-20
        • 1970-01-01
        相关资源
        最近更新 更多