学习笔记第五天&第六天

第五天课程:数据分析

数据分析–基本步骤–明确目的和思路–数据分析方法论

  1. 明确数据分析目的确定分析方法
  2. 用户行为理论是一个数据分析方法论
  3. 把跟数据分析相关的营销、管理等理论称为数据分析方法论
    从宏观角度指导如何进行数据分析
  4. PEST分析法:对于宏观环境的分析。Political、economic、technological、social
  5. 5W2H分析法:why、what、when、who、where、how、how much
  6. 4P营销理论:Product、price、place、promotion
  7. 根据实际业务进行调整。

数据分析–基本步骤–收集 处理 分析 展现

  1. 按照数据分析框架,收集相关数据
  2. 数据挖掘侧重解决:分类,聚类,关联和预测

数据分析–分布式

  1. 分布式系统:一个软件或者硬件组件分布在不同的网络计算机上,彼此之后通过消息传递进行通信和协调。用更多的计算机组成分布式集群对外提供服务。
  2. 分布式方案:分布式应用和服务:提高并发访问能力,减少数据库连接,比如dubbo
    分布式静态资源:减少服务器负载压力,比如CDN
    在这里插入图片描述
    分布式数据:apache hadoop HDFS
    分布式计算
  3. 分布式和集群的区别和相同:都是用多台的服务器,分布式部署相同的服务模块,集群部署不同的服务或应用,减少负载。

大数据时代

  1. 理论-技术-实践
  2. 技术:
    云技术:硬件虚拟化
    分布式处理技术:数据源-计算层-存储层-查询层-产品
    感知技术
  3. 互联网的大数据:百度两种类型数据:用户搜索表征的需求数据;爬虫和阿拉丁获取的公共web数据

大数据分析系统–实时、离线之分

  1. 大数据分析系统分为实时、离线两种。
  2. 实时处理:时效性要求高,流式处理,数据产生直接进行计算
  3. 离线处理:批处理,针对过去一段时间
  4. 区别在于数据产生到分析的时效性。

第六天课程:网站流量日志分析

网站流量日志分析–网站web流量日志

  1. 日志生成渠道:
    web服务器软件,httpd、nginx,tomcat自带的日志记录功能。
    自定义采集用户行为数据,通过在页面嵌入自定义的javascript代码来获取用户的访问行为,然后通过ajax请求到后台记录日志。
  2. 有没有记录流量日志,都不影响用户体验。

网站流量日志分析–自定义采集原理–雏形原理

  1. js如何更好的采集数据:埋点问题
    在这里插入图片描述
  2. 跨域:协议、主机、端口 任何一个不一样,域就不一样
  3. 当使用ajax访问远程服务器,失败时,禁止跨域服务。每家产品都针对跨域问题进行了解决。
  4. 用图片请求模拟的形式把数据传递到后台。看似是图片请求,其实底层在传递数据。

网站流量日志分析–自定义采集原理–详解

在这里插入图片描述

  1. 原理分析
    首先,用户的行为会触发浏览器对被统计页面的一个 http 请求,比如打开某网页。当网页被打开,页面中的埋点 javascript 代码会被执行。
    埋点是指:在网页中预先加入小段 javascript 代码,这个代码片段一般会 动态创建一个script 标签,并将 src 属性指向一个单独的 js 文件,此时这个单 独的 js 文件(图中绿色节点)会被浏览器请求到并执行,这个 js 往往就是真正 的数据收集脚本。
    数据收集完成后,js 会请求一个后端的数据收集脚本(图中的 backend), 这个脚本一般是一个伪装成图片的动态脚本程序,js 会将收集到的数据通过 http 参数的方式传递给后端脚本,后端脚本解析参数并按固定格式记录到访问 日志,同时可能会在 http 响应中给客户端种植一些用于追踪的 cookie。

网站流量日志分析–设计实现开始–确定收集信息

在这里插入图片描述

网站流量日志分析–确定埋点代码js

  1. 埋点代码:职责:当页面打开时,加载收集数据的js
  2. 如何页面一打开,埋点代码就执行
    执行完埋点代码,采集数据的js就加载到界面
    js收集数据,往后台发送数据
    js匿名函数自调用
  3. var _maq = _maq || [] 防止数组已经被定义过。
  4. (function(){})(); js自调用匿名函数,避免重名,只运行一次,一般用于初始化 ()意思是立马调用匿名函数
<html>
<head>
埋点js开始
<script type="text/javascript">
var _maq = _maq || []; 
_maq.push(['_setAccount', 'UA-XXXXX-X']); 
(function() {
var ma = document.createElement('script'); //自动创建一个ma js
ma.type = 'text/javascript'; ma.async = true;
ma.src = ('https:' == document.location.protocol ?
'https://ssl' : 'http://www') + '.google-analytics.com/ma.js'; 
var s = document.getElementsByTagName('script')[0];//页面的第一个script
s.parentNode.insertBefore(ma, s); })();//将ma js插入到dom树,第一个script之前
</script>
</head>
</html>

这段代码的主要目的
就是引入一个外部的 js 文件(ma.js),方式是通过 document.createElement 方法 创建一个 script 并根据协议(http 或 https)将 src 指向对应的 ma.js,最后将这个 元素插入页面的 dom 树上。
注意 ma.async = true 的意思是异步调用外部 js 文件,即不阻塞浏览器的解析,待外部 js 下载完成后异步执行。这个属性是 HTML5 新引入的。
插入node需要通过parent或者兄弟来操作,比如s.parentNode.insertBefore(ma, s)

网站流量日志分析–前端数据采集js

数据收集脚本(ma.js)被请求后会被执行,一般要做如下几件事:

  1. 通过浏览器内置 javascript 对象收集信息,如页面 title(通过 document.title)、 referrer(上一跳 url,通过 document.referrer)、用户显示器分辨率(通过 windows.screen)、cookie 信息(通过 document.cookie)等等一些信息。
  2. 解析_maq 数组,收集配置信息。这里面可能会包括用户自定义的事件跟 踪、业务数据(如电子商务网站的商品编号等)等。
  3. 将上面两步收集的数据按预定义格式解析并拼接(get 请求参数)。
  4. 请求一个后端脚本,将信息放在 http request 参数中携带给后端脚本。

这里唯一的问题是步骤 4,javascript 请求后端脚本常用的方法是 ajax,但是ajax 是不能跨域请求的。一种通用的方法是 js 脚本创建一个 Image 对象,将 Image 对象的 src 属性指向后端脚本并携带参数,此时即实现了跨域请求后端。这也是 后端脚本为什么通常伪装成 gif 文件的原因。

网站流量日志分析–后端数据采集

log.gif 是后端脚本,是一个伪装成 gif 图片的脚本。后端脚本一般需要完 成以下几件事情:

  1. 解析 http 请求参数得到信息。
  2. 从 Web 服务器中获取一些客户端无法获取的信息,如访客 ip 等。 3、将信息按格式写入 log。
  3. 生成一副 1×1 的空 gif 图片作为响应内容并将响应头的 Content-type设为 image/gif。
  4. 在响应头中通过 Set-cookie 设置一些需要的 cookie 信息。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王二小、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值