gpt4 book ai didi

javascript - 2016年如何在排除机器人和爬虫的情况下收集浏览量?

转载 作者:太空狗 更新时间:2023-10-29 14:18:54 31 4
gpt4 key购买 nike

我们想将页面浏览量计数器添加到我们的文章页面(就像在 Stackoverflow 中一样),但我们不想添加机器人和爬虫的页面浏览量。

我搜索了很多,只找到了非常过时的答案,上面说要触发 AJAX 请求,因为爬虫和机器人不执行 javascript...嗯,现在是 2016 年......我相信现在所有主要的爬虫都执行 javascript。

我想到了两个可行的解决方案:

  1. 在服务器上保留所有已知机器人和爬虫用户代理的列表,只有在请求不是其中之一的情况下才增加计数器(这似乎是一个非常糟糕的解决方案,因为列表需要维护和更新定期,并且可能会有很多列表无法捕捉到)。
  2. 使用 AJAX 向 robots.txt 中不允许的端点发送请求。 (或带有 src="/article/track/?id=xxxxx" 的隐藏图片)

第二个选项为每个页面创建另一个请求,并不可怕,但也许有更好的方法?今天处理这个问题的常用方法是什么?

使用 ASP.NET Core 并在需要时将页面 View 存储在 redis 中

最佳答案

我发现了 Stackoverflow 自己是如何处理它的:

<script>
StackExchange.ready(function(){$.get('/posts/40008735/ivc/e079');});
</script>
<noscript>
<div>
<img src="/posts/40008735/ivc/e079" class="dno" alt="" width="0" height="0">
</div>
</noscript>

在 robots.txt 中:

Disallow: /*/ivc/*
...
User-agent: Googlebot-Image
Disallow: /*/ivc/*

所以基本上,他们按照我在选项 2 中建议的方式处理它:

发出 AJAX 请求(或在禁用 javascript 时使用隐藏的 img)并指示爬虫和机器人不要使用 Disallow 爬取该 URL。

关于javascript - 2016年如何在排除机器人和爬虫的情况下收集浏览量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40008735/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com