V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Reign
V2EX  ›  程序员

一个网页的浏览量统计想要更精确点,怎样排除各种搜索引擎爬虫带来的访问量?

  •  
  •   Reign · 2017-02-14 10:29:20 +08:00 · 3756 次点击
    这是一个创建于 2842 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就像 V2 的帖子浏览量统计一样,我最初设想的是每访问一次,数据库的浏览量字段+1 ,但是各种爬虫的访问也带进来了,我想通过排查 header 来验证搜索引擎,但是世界上搜索爬虫这么多,百度、谷歌、 bing 、 Apple 、 yandex 等等,怎样设计一种较为精确的方式,只统计网友访问这个页面的次数?这样便于我统计受欢迎的页面

    14 条回复    2017-02-16 10:41:39 +08:00
    byuc
        1
    byuc  
       2017-02-14 10:49:01 +08:00
    让这个统计数,是基于用户手动点击递增
    gamexg
        2
    gamexg  
       2017-02-14 11:00:57 +08:00
    js 的统计能够过滤掉大部分爬虫(听说 google 会执行部分 js)。
    post 提交的能够过滤掉所有靠谱的爬虫。
    kafka0102
        3
    kafka0102  
       2017-02-14 11:08:43 +08:00
    js 异步提交统计就可以了,爬虫不会执行 js 脚本,也就是第三方统计的做法,否则只能在后端过滤掉包括 spider 、 bot 等 agent 的请求,但可能不会特别准。
    zhidian
        4
    zhidian  
       2017-02-14 12:08:59 +08:00
    思路 1 :一般 bot 会先访问 robots.txt ,你可以认为访问了这个文件的都是 bot 。思路 2 : bot 的数量是有限的,基本可以枚举出来登记一下。
    triostones
        5
    triostones  
       2017-02-14 13:19:56 +08:00
    @kafka0102 用 webdriver 的爬虫会执行 js 的。
    Shazoo
        6
    Shazoo  
       2017-02-14 14:39:12 +08:00
    @triostones 搜索引擎应该不会用 webdriver 做爬虫的。
    winglight2016
        7
    winglight2016  
       2017-02-14 15:56:32 +08:00
    这样便于我统计受欢迎的页面——只是实现这个目标,完全不用考虑是否爬虫访问,毕竟爬虫爬一次就在所有页面的访问量上+1 (如果真的是放在服务端统计 request 这种方式)
    jiangzhuo
        8
    jiangzhuo  
       2017-02-14 16:29:20 +08:00
    统计受欢迎的网页不应该只统计访问次数,应该统计网友在此页的停留时间,鼠标移动的轨迹,在网页上是否有选择一些什么的,甚至有表单的要记录键盘操作。
    其实统计停留时间可以度就能提高很多了,毕竟搜索引擎的爬虫从来不停留,都是打开了就走。
    sriuu
        9
    sriuu  
       2017-02-14 16:34:30 +08:00
    百度部分爬虫也会部分执行 js 的(x
    ibufu
        10
    ibufu  
       2017-02-14 17:16:21 +08:00
    罗列一下大部分常见的 user-agent 就行了,没多少
    lightening
        11
    lightening  
       2017-02-14 18:14:24 +08:00
    Google Analytics 是干啥用的……
    ZE3kr
        12
    ZE3kr  
       2017-02-14 18:21:56 +08:00 via iPhone
    Google 爬虫会执行 JS

    ua 直接排除代“ bot ”三个字母的就搞定了
    zsx
        13
    zsx  
       2017-02-14 21:56:42 +08:00
    @winglight2016 #7 爬虫爬一次是看运气的,不一定会爬全站,一个页面可能爬多次

    @Shazoo #6 Google 的能渲染 React ……
    winglight2016
        14
    winglight2016  
       2017-02-16 10:41:39 +08:00
    @zsx 对于已收录链接,爬虫一般会先 head 一下看看是否有更新,没更新就不会实际 get
    另外,类似 google analytic 只有执行了页面渲染才会计数, google 爬虫的渲染应该不包括这种计数 js 吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1139 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 22:52 · PVG 06:52 · LAX 14:52 · JFK 17:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.