网站统计功能的设计与实现

关键字:网站统计 设计 实现 
作者:方倍工作室
原文: http://www.cnblogs.com/txw1958/p/website-statistic-analysis.html

本文简要介绍网站统计功能的设计与实现。

本文分为以下五个部分:

  1. 埋点设计与实现
  2. 页面引入
  3. 数据接收
  4. 数据入库
  5. 统计分析

一、埋点设计与实现

在JavaScript中,包含了很多对象,可以用于获取用户的数据。比如Document对象用于分析每个载入浏览器的 HTML 文档,可以获得当前文档的域名、URL、及当前文档的标题;Navigator对象包含有关浏览器的信息,可以得到运行浏览器的userAgent的值,当前系统的语言;而Screen对象则可以获得当前屏幕的相关信息。通过这些对象,我们可以得到一个相当完备的用户信息。
另外,通过其他接口,还可以得到用户的mac地址及IP地址,继而可以分析出用户的机器及所在省市区地址等。

我们使用javascript获取访问信息,将统计代码伪装成图片通过浏览器访问触发,代码实现如下。

二、页面引入

在要做统计的web页面中引入统计脚本,并主动将其他接口获得的mac及ip地址另外传入,一个简易的页面设计如下代码所示。

三、数据接收

在后台接口中接收上报上来的数据。我们使用php程序获取get及post的数据来接收。

上述接口程序获得的文件日志中数据如下所示。

17:38:25 http://www.fangbei.org?domain=www.fangbei.org&url=http%3A%2F%2Fwww.fangbei.org%2F_test%2Fstat.html&title=%e6%96%b9%e5%80%8d%e5%b7%a5%e4%bd%9c%e5%ae%a4&referrer=&sh=1920&sw=1080&cd=24&useragent=Mozilla%2F5.0%20(Linux%3B%20U%3B%20Android%205.1.1%3B%20zh-cn%3B%20Mi-4c%20Build%2FLMY47V)%20AppleWebKit%2F533.1%20(KHTML%2C%20like%20Gecko)Version%2F4.0%20MQQBrowser%2F5.4%20TBS%2F025483%20Mobile%20Safari%2F533.1%20MicroMessenger%2F6.3.9.48_refecd3e.700%20NetType%2FWIFI%20Language%2Fzh_CN&platform=Linux%20aarch64&language=zh-CN&usermac=185E0F88F5EF&apmac=185E0F88F5F0
17:38:25
17:38:25 _GET: Key: domain; Value: www.fangbei.org
17:38:25 _GET: Key: url; Value: http://www.fangbei.org/_test/stat.html
17:38:25 _GET: Key: title; Value: 方倍工作室
17:38:25 _GET: Key: referrer; Value:
17:38:25 _GET: Key: sh; Value: 1920
17:38:25 _GET: Key: sw; Value: 1080
17:38:25 _GET: Key: cd; Value: 24
17:38:25 _GET: Key: useragent; Value: Mozilla/5.0 (Linux; U; Android 5.1.1; zh-cn; Mi-4c Build/LMY47V) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.4 TBS/025483 Mobile Safari/533.1 MicroMessenger/6.3.9.48_refecd3e.700 NetType/WIFI Language/zh_CN
17:38:25 _GET: Key: platform; Value: Linux aarch64
17:38:25 _GET: Key: language; Value: zh-CN
17:38:25 _GET: Key: usermac; Value: 185E0F88F5EF
17:38:25 _GET: Key: apmac; Value: 185E0F88F5F0
17:38:43 http://www.fangbei.org?domain=www.fangbei.org&url=http%3A%2F%2Fwww.fangbei.org%2F_test%2Fstat.html&title=%e6%96%b9%e5%80%8d%e5%b7%a5%e4%bd%9c%e5%ae%a4&referrer=&sh=1184&sw=720&cd=24&useragent=Mozilla%2F5.0%20(Linux%3B%20U%3B%20Android%204.4.2%3B%20zh-cn%3B%20H60-L01%20Build%2FHDH60-L01)%20AppleWebKit%2F533.1%20(KHTML%2C%20like%20Gecko)Version%2F4.0%20MQQBrowser%2F5.4%20TBS%2F025489%20Mobile%20Safari%2F533.1%20MicroMessenger%2F6.3.9.48_refecd3e.700%20NetType%2FWIFI%20Language%2Fzh_CN&platform=Linux%20armv7l&language=zh-CN&usermac=185E0F88F5EF&apmac=185E0F88F5F0
17:38:43
17:38:43 _GET: Key: domain; Value: www.fangbei.org
17:38:43 _GET: Key: url; Value: http://www.fangbei.org/_test/stat.html
17:38:43 _GET: Key: title; Value: 方倍工作室
17:38:43 _GET: Key: referrer; Value:
17:38:43 _GET: Key: sh; Value: 1184
17:38:43 _GET: Key: sw; Value: 720
17:38:43 _GET: Key: cd; Value: 24
17:38:43 _GET: Key: useragent; Value: Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; H60-L01 Build/HDH60-L01) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.4 TBS/025489 Mobile Safari/533.1 MicroMessenger/6.3.9.48_refecd3e.700 NetType/WIFI Language/zh_CN
17:38:43 _GET: Key: platform; Value: Linux armv7l
17:38:43 _GET: Key: language; Value: zh-CN
17:38:43 _GET: Key: usermac; Value: 185E0F88F5EF
17:38:43 _GET: Key: apmac; Value: 185E0F88F5F0
17:38:50 http://www.fangbei.org?domain=www.fangbei.org&url=http%3A%2F%2Fwww.fangbei.org%2F_test%2Fstat.html&title=%e6%96%b9%e5%80%8d%e5%b7%a5%e4%bd%9c%e5%ae%a4&referrer=&sh=592&sw=360&cd=32&useragent=Mozilla%2F5.0%20(Linux%3B%20Android%204.4.2%3B%20H60-L01%20Build%2FHDH60-L01)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Version%2F4.0%20Chrome%2F30.0.0.0%20Mobile%20Safari%2F537.36&platform=Linux%20armv7l&language=zh-CN&usermac=185E0F88F5EF&apmac=185E0F88F5F0
17:38:50
17:38:50 _GET: Key: domain; Value: www.fangbei.org
17:38:50 _GET: Key: url; Value: http://www.fangbei.org/_test/stat.html
17:38:50 _GET: Key: title; Value: 方倍工作室
17:38:50 _GET: Key: referrer; Value:
17:38:50 _GET: Key: sh; Value: 592
17:38:50 _GET: Key: sw; Value: 360
17:38:50 _GET: Key: cd; Value: 32
17:38:50 _GET: Key: useragent; Value: Mozilla/5.0 (Linux; Android 4.4.2; H60-L01 Build/HDH60-L01) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
17:38:50 _GET: Key: platform; Value: Linux armv7l
17:38:50 _GET: Key: language; Value: zh-CN
17:38:50 _GET: Key: usermac; Value: 185E0F88F5EF
17:38:50 _GET: Key: apmac; Value: 185E0F88F5F0

四、数据入库

要做统计分析,最终数据都要放放数据库,

数据库表设计如下

入库后如下所示

五、统计分析

最后,将获得的数据进行分析

比如昨天访问量的SQL查询语句如下

生成的图形如下

其他生成的统计图表如下

基于访问次数的二次分析-客户忠诚度的统计如下

时间: 2025-01-05 03:23:38

网站统计功能的设计与实现的相关文章

基于Java EE技术的公司职员信息管理系统查询与统计功能的设计与实现

获取项目源文件,技术交流与指导联系Q:1225467431 摘要 二十一世纪的今天,随着互联网的普及与发展,计算机技术已经广泛的应用于人们的生产办公中,特别是信息的处理加工,更大大的推进着企业的生产效率的增长,企业管理信息化已经成为一个必然的趋势. 本课题研究并开发基于J2EE多层框架的人事信息管理系统.此系统不同于以往的人事信息管理软件,而是在互联网的大背景下,实现以数据库服务器来维护人事信息数据,浏览器客户端来动态访问服务器,这种采用B/S架构的管理系统,有利于充分利用互联网覆盖范围广,通信

使用nginx lua实现网站统计中的数据收集

使用nginx lua实现网站统计中的数据收集 导读 网站数据统计分析工具是各网站站长和运营人员经常使用的一种工具,常用的有 谷歌分析.百度统计和腾讯分析等等.所有这些统计分析工具的第一步都是网站访问数据的收集.目前主流的数据收集方式基本都是基于javascript的.在此简要分析数据收集的原理,并按照步骤,带领大家一同搭建一个实际的数据收集系统. 数据收集原理分析 简单来说,网站统计分析工具需要收集到用户浏览目标网站的行为(如打开某网页.点击某按钮.将商品加入购物车等)及行为附加数据(如某下单

大访问量的网站统计系统

原文出自:http://www.cnblogs.com/juxiaoqi/archive/2009/12/01/1614395.html 因为工作需要,准备开发一个网站统计系统(感谢 ztotem,liy 同学大力支持). 该系统主要功能:统计网站中加了计数器代码的页面每天的PV.UV.IP(精确到小时) ,另外需要分析页面来源网站的一些数据 …… 初步设计了架构: 大概解读一下:  1.统计代码是统一的,所有页面都使用统一的代码,类似 Google Analytics 的那种: <script

网站统计中的数据收集原理及实现

转载自:http://blog.sina.com.cn/s/blog_62b832910102w5mx.html Avinash Kaushik将点击流数据的获取方式分为4种:log files.web beacons.JavaScript tags和packet sniffers,其中包嗅探器(packet sniffers)比较不常见,最传统的获取方式是通过WEB日志文件(log files):而beacons和JavaScript是目前较为流行的方式,Google Analytics目前就

网站统计中的数据收集原理及实现(share)

转载自:http://blog.codinglabs.org/articles/how-web-analytics-data-collection-system-work.html 网站数据统计分析工具是网站站长和运营人员经常使用的一种工具,比较常用的有谷歌分析.百度统计和腾讯分析等等.所有这些统计分析工具的第一步都是网站访问数据的收集.目前主流的数据收集方式基本都是基于javascript的.本文将简要分析这种数据收集的原理,并一步一步实际搭建一个实际的数据收集系统. 数据收集原理分析 简单来

Python 的网络传输文件功能的设计与实现

摘要:Python 是目前较流行的程序设计语言之一,它具有简单易学代码简洁等特点,并且Python 提供了大量的功能库文件,开发大型应用程序时非常方便,广泛用于网站开发.游戏后台开发等方面.该文基Python 提供的网络编程库,开发了网络文件传输的功能,该功能可以快速有效地在互联网上进行文件的传输.1 Python 介绍Python是由Guido van Rossum在1989年底创造的,在1991年发行了第一个公开版本.Python是一种面向对象的.解释型的.动态数据类型的程序设计语言.Pyt

词频统计-功能一

一.完成一个小程序 我 拿到这个题目之后,就决定用最不熟悉的c#来实现,因为老师说不懂的去学才会有进步.布置任务后的第二天就开始去图书馆借了两本书<c#从入门到精髓>,<c#项目实战>,拿到书之后看了入门书<c#从入门到精髓>,看书的过程时痛苦的,因为发现大二选修课学的c#全交还给老师了,只能重头再学了.唯一有点印象的就是窗口应用程序,基于UI的设计. 写代码首先需要工具,由于电脑上没有visual studio的安装包,当时求助了度娘. 如果没有安装包的同学们,可以借

Atitit.收银机小票打印功能的设计&#160;&#160;java&#160;php&#160;c#.net版本

Atitit.收银机小票打印功能的设计  java php c#.net版本 1. 1. 打印方式有4种:1 1.1. 1.1. 一是不经过任何修改,直接调用javascript中的window.print()打印.1 1.2. 1.2. 二根据客户要求的报表格式,编写相应格式的html,装载数据打印,同样调用window.print()打印,只是对html的格式要求比较高.1 1.3. 1.3. 三是通过客户提供的word格式,通过xml配置文件与数据库的数据进行关联,自动装载数据到word中

最全的DedeCMS网站统计信息代码

最全的DedeCMS网站统计信息代码(包含网站历史访问人数的统计): {dede:sql sql="select count(mid) as c from dede_member "}共有会员:[field:c /] 名{/dede:sql}{dede:sql sql="select count(id) as c from dede_archives where from_unixtime(pubdate,'%m') = month(curdate( ))"}本月更