收藏 分销(赏)

网站流量统计系统.doc

上传人:精**** 文档编号:3138094 上传时间:2024-06-19 格式:DOC 页数:25 大小:363.50KB
下载 相关 举报
网站流量统计系统.doc_第1页
第1页 / 共25页
网站流量统计系统.doc_第2页
第2页 / 共25页
网站流量统计系统.doc_第3页
第3页 / 共25页
网站流量统计系统.doc_第4页
第4页 / 共25页
网站流量统计系统.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、网站流量统计系统摘 要网站流量统计是改进网站服务的重要手段之一,通过获取用户在网站的行为,可以分析出哪些内容受到欢迎,哪些页面存在问题,从而使网站改进活动更具有有针对性。常用的网站流量统计指标包括三类:(1)网站流量指标,如在一定统计周期那网站的独立用户数量、总用户数量、网页浏览数量、每个用户的页面浏览数量等;(2)用户行为指标,如用户来源网站、用户所使用的搜索引擎及其关键词、在不同时段的访问量情况等;(3)用户浏览网站的方式,如用户上网设备类型、用户浏览器的名称和版本、访问者电脑分辨率显示模式等。获取网站访问统计资料通常有两种方法:(1)在自己的网站服务器端安装统计分析软件进行监测;(2)采

2、用第三方提供的网站流量分析服务。两种方法各有利弊,采用第一种方法可以方便地获得详细的网站统计信息,并且除了访问统计软件的费用之外无需其他直接的费用,但由于这些资料在自己的服务器上,因此在向第三方提供有关数据时缺乏说服力;第二种方法则正好具有这种优势,但通常要为这种服务付费,虽然也有一些免费网站流量统计服务,但由于在功能方面会有一定的限制,或者通常需要在网站上出现服务商的标识甚至广告。因此本人以第三方统计网站流量为设计基础,运用Python编程语言及其web开发框架Django,结合SQLite3数据库,完成对访客的IP地址,浏览器,操作系统,浏览页面的记录,并按时间单位进行统计统计。关键词 网

3、站流量统计;Python;Django;SQLite;24 / 25第1章 绪论1.1 网站流量统计的动机在用户访问模式、Web软件组件的性能和基本网络基础设施的特征参数提取中,Web流量测量起着关键的作用。内容创建者可以从用户浏览模式测量那里收集有价值的数据。考虑销售图书的电子商务站点,站点访问者数量的统计数字将影响Web页面里嵌广告带来的广告收入。另外,分析用户访问模式可以指导Web站点重新设计的过程。设想有许多用户访问主页,并点击特定次序的超文本链接以查找到平装书籍。这将激发改变主页的想法,以提供给含有大量普通图书列表的直接链接。知道用户停留在网站有多长时间和下载了多少网页将是很有用的。

4、如果许多用户在查看了一两页后就离开的话,那么网站就需要更好地组织或增加更令人感兴趣的资料。在连续网页间迅速切换的用户可能不会发现他们想要的信息。于是内容创建者可通过允许用户根据主题搜索站点来解决这个问题。内容的创建者也可能对知道用户怎么到达Web站点感兴趣。例如,设想对图书网站的访问请求的25%是用户从某个新闻网站点击超文本链接而来,那么图书销售商可能会在这个新闻网站继续做广告。测量也可以用来刻画Web站点的性能特征。1.2 网站流量统计指标网站流量统计的基础是获取网站流量的基本数据,网站流量统计指标大致可以分为三类,每类包含若干数量的统计指标。具体的网站流量统计是通过不同的IP登陆网站来计算

5、的。也就是说,一天内同一台机器登陆网站的次数不论是多少,在流量统计中只记为一次有效登陆,这种计算方法可以较为科学的计算出有多少人登陆过该网站,有效的防止了有意的对网站进行刷新从而增加自己网站的点击率。网站流量指标:1、独立的访问者数量(unique visitors);2、重复的访问者数量(repeat visitors);3、页面浏览数(page views);4、每个访问者的页面浏览数(page views per user);5、某些具体文件/页面的统计指标,如页面显示次数、文件下载次数等。 用户行为指标:1、用户在网站的停留时间;2、用户来源网站(也叫“引导网站” );3、用户所使用的

6、搜索引擎及其关键词;4、在不同时段的用户访问量情况等。用户浏览网站的方式:1、用户上网设备类型; 2、用户浏览器的名称和版本; 3、访问者电脑分辨率显示模式; 4、用户所使用的操作系统名称和版本; 5、用户所在地理区域分布状况等。1.3 网站流量统计原理当浏览者访问网站时,会向网站所在服务器发送HTTP请求,由于网页是富媒体聚合形式,当引用第三方的图片、音频、视频时,也会向媒体所在服务器发送请求。通过向所要统计网站页面中插入一段HTML代码来实行转向访问。HTTP请求标头(Request-Header)中包含了用户代理(User-Agent),引用地址(Referer),以及通过WEB服务器获

7、得客户端的IP地址。绝大多数HTTP通讯由用户代理进行初始化,并通过它来组装请求以获取存储在一些原始服务器上的资源。在最简单的情况下,通过用户代理与原始服务器之间一个简单的连接就可以完成。用户代理原始服务器请求链接用户代理原始服务器简单连接用户代理原始服务器响应链接图1.1 HTTP通讯过程HTTP/1.0的请求标头允许客户端向服务器端传递该请求的附加信息及客户端信息。该域做为请求的修饰部分,遵照编程语言程序调用参数的语法形式。12Request-Header = Authorization; 用户代理的身份凭证 | From; 用户的电子邮件地址 | If-Modified-Since; 同

8、最后一次修改时间的比较 | Referer; 引用页面的URI | User-Agent; 用户代理软件的信息HTTP/1.1请求标头已经增加到了19个,不过增加的部分并不包含所要收集的数据,所以本文不进行列举。第2章 Python语言及Django框架简介2.1 Python语言简介Python是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器,我们用的比较多的是C版本的Python,也就是使用C语言实现的Python解释器,除此之外还有使用Java实现的Jython和使用.NET实现的IronPython,这些实

9、现可以使Python用户充分利用己有的Java及.NET资源。同时,Python支持几乎所有常用的操作系统,包括:WindowsDOS、Macintosh、Linux 及 FreeBSD。及很多不常用的操作系统,包括AIX、AS/400 (OS/400)、BeOS、OS/2、OS/390与z/OS、Palm OS、PlayStation与PSP、Psion、QNX、RISC OS、Series 60、Sparc Solaris、VMS、VxWorks、Windows CE或Pocket PC、Sharp Zaurus、MorphOS等。可扩充性可说是Python作为一种编程语言的特色。新的内置

10、模块(module)可以用C 或 C+写成。而我们也可为现成的模块加上Python的界面。Python可以使用户避免过分的语法的羁绊而将精力主要集中到所要实现的程序任务上。因此Python具有非常庞大的程序库,通过它们可以快速完成绝大部分常用的任务,如:从某个URL中获取信息、正则表达式、获得某个文件或字符串的MD5特征字符串、多线程、XML及HTML的分析等。Python也被称为是一门清晰的语言。因为它的作者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了2.2 Django框架简介Django是一个开放源代码的Web应用框架,由Python写成。采用了M

11、VC的设计模式,即模型M,模版T和视图控制器V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Dont Repeat Yourself)。在Django中Python被普遍使用,甚至包括配置文件和数据模型。Django框架的核心包括:一个 对象-关系 的映射器,用作数据模型(以Python类的形式定义)和关系数据库间的媒介

12、;一个基于正则表达式的URL分发器;一个视图系统,用于处理请求;以及一个模板系统。核心框架中还包括:1、一个轻量级的、独立的Web服务器,用于开发和测试。 2、一个表单序列化及验证系统,用于HTML表单和适于数据库存储的数据之间的转换。 3、一个缓存框架,并有几种缓存方式可供选择。 4、中间件支持,允许对请求处理的各个阶段进行干涉。 5、内置的分发系统允许应用程序中的组件采用预定义的信号进行相互间的通信。 6、一个序列化系统,能够生成或读取采用XML或JSON表示的Django模型实例。 7、一个用于扩展模板引擎的能力的系统。Django 包含了很多应用在它的“contrib”包中,这些包括:

13、1、一个可扩展的认证系统 2、动态站点管理页面 3、一组产生 RSS 和 Atom 的工具 4、一个灵活的评论系统 5、产生Google 站点地图 (Google Sitemaps)的工具 6、防止跨站请求伪造(cross-site request forgery)的工具 7、一套支持轻量级标记语言(Textile和Markdown)的模板库 8、一套协助创建地理信息系统(GIS)的基础框架2.3 SQLite数据库简介SQLite是遵守ACID的关联式数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。不像常见的客户-服务器范例,SQLite引擎不是

14、个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。库实现了多数的SQL-92标准,包括事务,就是代表原子性、一致性、隔离性和持久性的(ACID),触发器和多数的复杂查询。不进行类型检查。你可以把字符串插入到整数列中。例如,某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候。其他用户认为这是主要的缺点。多个进程或线程

15、可以访问同一个数据而没有问题。可以并行的满足多个读访问。只有在其他访问当前不被服务的时候才能满足写访问;否则写访问失败并带有一个错误代码(也可以在可配置的超时过期之后自动的重试)。提供了叫做sqlite的一个独立程序用来查询和管理SQLite数据库文件。 它也充当写使用SQLite库的应用的一个例子第3章 需求分析3.1 系统描述网站流量统计系统包括三个基本部分,一个是记录访客部分,包括记录访客的IP地址,浏览器信息,操作系统信息,浏览时间,离开时间,浏览页面,会话记录。一个是系统管理部分,包括用户管理,用户组管理,权限管理,站点管理,访客管理。还有一个是统计部分,包括在线人数统计,综合数据统

16、计,单日流量统计等。3.2 统计网站识别本系统由于要对多个网站进行统计,所以必须区分访问不同站点的访客。每个网站都由系统生成唯一的编号,通过让不同的网站引用名为该网站编号的图片,就能区分出是来自哪个网站的访客。3.3 页面识别一个网站包含多个页面。区分访客对不同页面的访问对统计来说意义重大。在图片请求Request中的Referer包含引用图片的网页的网址。通过它不仅能区分访客访问什么页面,还能判断是否是属于某网站域名下的URL,以过滤第三方引用图片造成的Request。3.4 访客识别区分不同的访客是统计系统的关键所在,一般认为一个IP代表一个访客。但是当多个内网访客共用一个外网IP时,就会

17、造成只有一个访客的假像。通过基于Cookie的会话(session)机制,就能区分以浏览器客户端为单位的用户。3.5 停留时间Http是一个无状态协议,同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的所有信息外,该环境不保存有会话有关的任何信息。因此需要依赖Ajax技术,由客户端每隔数秒想服务器发送Request,以维持状态的持续性。当关闭页面时,Request发送就会停止,由此可以确定访客的停留时间.第4章 系统设计4.1 数据库关系结构图单向箭头表示多对一关系,双向箭头表示多多对多关系。用户访客权限网站用户组消息图4.1 数据库结构

18、关系示意图4.2 数据库表结构4.2.1基本表1、访客表描述表4.1 访客表描述字段名含义说明别名类型允许空是否主键是否外键id唯一标识integer否是否addrIP地址IPchar(15)否否否browser浏览器名浏览器varchar(30)否否否version浏览器版本浏览器版本varchar(20)否否否os操作系统操作系统varchar(30)否否否os_version操作系统版本操作系统版本varchar(20)否否否session会话标识varchar(32)否否否refere引用路径路径varchar(200)否否否start访客访问时间访问时间datetime否否否end访

19、客离开时间离开时间datetime否否否agent用户代理信息用户代理varchar(300)否否否website_id网站标识integer否否是2、网站表描述表4.2 网站表描述字段名含义说明别名类型允许空是否主键是否外键id唯一标识integer否是否name网站名网站名varchar(300)否否否url网站网址URLvarchar(200)否否否user_id用户标识integer否否是3、用户表描述表4.3 用户表描述字段名含义说明别名类型允许空是否主键是否外键id唯一标识integer否是否username用户名用户名varchar(30)否否否first_name名字名字var

20、char(30)否否否last_name姓氏姓氏varchar(30)否否否emailE-mail 地址E-mail 地址varchar(75)否否否password帐号密码密码varchar(128)否否否is_staff是否职员职员状态bool否否否is_active是否可用有效bool否否否is_superuser是否超级用户超级用户状态bool否否否last_login最后登陆时间上次登录datetime否否否date_joined帐号注册时间加入日期datetime否否否4、用户组表描述表4.4 用户组表描述字段名含义说明别名类型允许空是否主键是否外键id唯一标识integer否是否

21、name组名组名varchar(30)否否否5、权限表描述表4.5 用户权限表描述字段名含义说明别名类型允许空是否主键是否外键id唯一标识integer否是否name权限名权限名varchar(30)否否否6、消息表描述表4.6 用户消息表描述字段名含义说明别名类型允许空是否主键是否外键id唯一标识integer否是否user_id权限名权限名varchar(30)否否是message权限名权限名text否否否4.2.1 关系表1、用户组和权限关系表表4.7 用户组和用户权限关系表描述字段名含义说明别名类型允许空是否主键是否外键id唯一标识integer否是否group_id用户组标识inte

22、ger否否是permission_id权限标识integer否否是2、用户和用户组关系表表4.8 用户和用户组关系权限表描述字段名含义说明别名类型允许空是否主键是否外键id唯一标识integer否是否user_id用户组标识integer否否是group_id权限标识integer否否是3、用户和权限关系表表4.9 用户和权限表描述字段名含义说明别名类型允许空是否主键是否外键id唯一标识integer否是否user_id用户标识integer否否是group_id用户组标识integer否否是第5章 系统实现5.1 访客记录的实现主要从客户端浏览器的请求中获得访客的IP地址,浏览器信息,操作系

23、统信息,浏览时间,浏览页面。访客通过浏览器浏览网站间接访问引用图片和JS脚本统计服务器浏览器图片RequestJS每数秒发送Resquest图5.1 数据库结构关系示意图统计服务器从浏览器客户端的Request中获取HTTP_USER_AGENT,REMOTE_ADDR,HTTP_REFERER。浏览器客户端每数秒发送一个请求以维持长连接状态。5.2 管理界面的实现5.2.1 注册页面在该页面注册的用户为普通用户,具有USERS组权限,即添加网站,修改网站,删除网站,查看统计。图5.2 注册页面5.2.2 登录页面这是系统的唯一接口,所有用户都要在这登录才能进行下一步操作,需要客户端浏览器支持

24、Cookie。图5.3 登录页面5.2.3 超级用户页面超级用户能对所有用户,用户组,网站,访客数据进行所有权限管理。图5.4 超级用户页面5.2.4 网站管理在网站管理页面中,可以进行网站的添加删除和修改。网站信息包括网站名,网站的URL。其中网站的URL必须保证其可访问性。图5.5 网站管理页面5.2.5 访客信息访客中包含访客的IP,浏览器,操作系统,访问时间,离开时间。以及按访问时间,浏览器,操作系统分组查看信息。只有超级用户才能对访客信息进行添加删除修改。图5.6 访客管理页面5.2.6 用户管理用户管理只有超级用户用户才能访问,可以添加删除用户,及修改用户的用户名,密码,名字,姓氏

25、,E-mail地址,职员状态,有效性,权限,用户组。图5.7 用户管理页面图5.8 用户修改页面5.2.7 用户组管理用户组管理只有超级用户用户才能访问,可以添加删除用户组,及修改用户组的对各个表的操作权限。图5.9 用户组管理页面图5.10 用户组管理页面5.3 统计界面的实现5.3.1 在线人数统计在线人数为当前15分钟,10分钟和5分钟内浏览某网站的访客数。其中uv代表独立用户(Unique Visitor)。图5.11 在线人数统计5.3.2 综合统计报告综合统计中包含pv,uv,ip以天为单位的数据,其中PV代表页面访问量,UV代表独立访客,IP代表独立IP。图5.12 综合统计报告

26、5.3.3单日统计报告统计某日内的以小时为单位的pv,uv,ip总数。图5.13 单日统计报告第6章 系统测试6.1 功能测试6.1.1 链接测试链接是web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的url地址才能访问。链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个web应用系统的所有页面开发完

27、成之后进行链接测试。6.1.2 表单测试当用户给web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。6.1.3 cookies测试cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用cookies访问了某一个应用系统时,web服务器将发送

28、关于用户的信息,把该信息以cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。如果web应用系统使用了cookies,就必须检查cookies是否能正常工作。测试的内容可包括cookies是否起作用,是否按预定的时间进行保存,刷新对cookies有什么影响等。6.1.4 设计语言测试web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的html等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了html的版本问题外,不同的脚本语言,例如Java、JavaScript、 activex、vbscript或per

29、l等也要进行验证。6.1.5 数据库测试在web应用技术中,数据库起着重要的作用,数据库为web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在web应用中,最常用的数据库类型是关系型数据库,可以使用sql对信息进行处理。在使用了数据库的web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。6.2 性能测试6.2.1 连接速度测试用户连接到web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽

30、带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。6.2.2 负载测试负载测试是为了测量web系统在某一负载级别上的性能,以保证web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问web系统的用户数量,也可以是在线数据处理的数量。例如:web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?web应用系

31、统能否处理大量用户对同一个页面的请求?6.2.3 压力测试负载测试应该安排在web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在internet上,接受负载测试,其结果才是正确可信的。进行压力测试是指实际破坏一个web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到web应用系统崩溃,接着当系统重新启动时获得存取权。压力测试的区域包括表单、登陆和其他信息传输页面等。6.3 可

32、用性测试 6.3.1 导航测试导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个web应用系统是否易于导航:导航是否直观?web系统的主要部分是否可通过主页存取?web系统是否需要站点地图、搜索引擎或其他的导航帮助?在一个页面上放太多的信息往往起到与预期相反的效果。web应用系统的用户趋向于目的驱动,很快地扫描一个web应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉web应用系统的结构,因此,web应用系统导航帮助要尽可能地准确。导航的另一个重要方面是

33、web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道web应用系统里面是否还有内容,内容在什么地方。web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。6.3.2 图形测试在web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:1、要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。2、验证所有

34、页面字体的风格是否一致。3、背景颜色应该与字体颜色和前景颜色相搭配。4、图片的大小和质量也是一个很重要的因素,一般采用jpg或gif压缩。6.3.3 内容测试内容测试用来检验web应用系统提供信息的正确性、准确性和相关性。信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用microsoft word的“拼音与语法检查”功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般web站点中的所谓“相关文章列表”。6.3.4 整体界面测试整体界面是指整个web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个web应用系统的设计风格是否一致?对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。对所有的可用性测试来说,都需要有外部人员(与web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服