数据采集方法及装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据采集方法及装置。
背景技术
现有技术在分析用户需求时,需要采集用户浏览的页面,通过采集的页面来对用户进行分析。例如一个用户访问了某个页面,然后完成某笔订单的购买,那么通过现有技术的采样方式,如果设置50%的采样,可能会收集到用户访问了某个页面的事件而丢弃了完成某笔订单的购买。因此从用户的角度,收集到的数据是不完整的,以此采样的结果也会出现统计上的不精准。如在某电商网站中有1000个用户产生了流量,100个用户最终购买,即10%的流量购买转化率。如果仅对页面采样,即流量和购买单独采样10%的方式,那么极端情况下有可能收集到了100个A类用户的流量数据,100个B类用户的购买数据,两类用户没有交集,购买转化率为0%。
针对现有技术中采集的用户数据不完整的问题,目前尚未提出有效的解决方案。
发明内容
本发明提供了一种数据采集方法及装置,以至少解决现有技术中采集的用户数据不完整的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种数据采集方法。
根据本发明的数据采集方法包括:针对不同的用户分别生成不同的用户ID;从生成的用户ID中选取一个或多个用户ID;以及采集与选取的用户ID对应的用户的数据。
进一步地,针对不同的用户分别生成不同的用户ID包括:获取用户的计算机环境信息;以及根据计算机环境信息生成用户ID。
进一步地,根据计算机环境信息生成用户ID包括:获取计算机环境信息对应的字符串;获取字符串在哈希函数中对应的哈希数值;获取随机数生成器生成的随机数;以及合并哈希数值与随机数以生成用户ID。
进一步地,从生成的用户ID中选取一个或多个用户ID包括:将哈希数值映射到数值区间;根据用户预设的采样率确定数值区间中的采样范围;以及选取映射到采样范围中的哈希数值对应的用户ID。
进一步地,从生成的用户ID中选取一个或多个用户ID包括:从生成的用户ID中随机选取一个或多个用户ID。
为了实现上述目的,根据本发明的另一个方面,提供了一种数据采集装置,该装置用于执行本发明提供的任意一种数据采集方法。
根据本发明的另一方面,提供了一种数据采集装置。该数据采集装置包括:生成单元,用于针对不同的用户分别生成不同的用户ID;选取单元,用于从生成的用户ID中选取一个或多个用户ID;以及采集单元,用于采集与选取的用户ID对应的用户的数据。
进一步地,生成单元包括:获取子单元,用于获取用户的计算机环境信息;以及生成子单元,用于根据计算机环境信息生成用户ID。
进一步地,生成子单元用于包括:第一获取模块,用于获取计算机环境信息对应的字符串;第二获取模块,用于获取字符串在哈希函数中对应的哈希数值;第三获取模块,用于获取随机数生成器生成的随机数;以及生成模块,用于合并哈希数值与随机数以生成用户ID。
进一步地,选取单元包括:映射子单元,用于将哈希数值映射到数值区间;确定子单元,用于根据用户预设的采样率确定数值区间中的采样范围;以及选取子单元,用于选取映射到采样范围中的哈希数值对应的用户ID。
进一步地,选取单元还用于从生成的用户ID中随机选取一个或多个用户ID。
本发明对用户采样,而不是对页面采样,当通过页面采样时,经常会采集都某一用户的一个行为和另一个用户的另一个行为,由于这两个行为没有必然联系,因此这样无法准确分析用户的需求,通过直接采集选取用户的全部行为,可以更准确地了解用户的使用情况,因此解决了采集的用户数据不完整的问题,进而达到了准确分析用户需求的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据采集装置的结构框图;
图2是根据本发明第二优选实施例的数据采集装置的结构框图;
图3是根据本发明第三优选实施例的数据采集装置的结构框图;
图4是根据本发明第四优选实施例的数据采集装置的结构框图;以及
图5是根据本发明实施例的数据采集方法的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明实施例提供了一种数据采集装置,以下对本发明实施例所提供的数据采集装置进行介绍。
图1是根据本发明实施例的数据采集装置的结构框图。
如图1所示,该数据采集装置包括生成单元11、选取单元12和采集单元13。
生成单元11用于针对不同的用户分别生成不同的用户ID。
现有技术通过系统时间生成用户ID,在高并发的情况下,由于很多用户的时间相同,因此生成的用户ID也容易重复。本单元通过每个用户不同的特征,生成不同的用户ID。
选取单元12用于从生成的用户ID中选取一个或多个用户ID。
采集单元13用于采集与选取的用户ID对应的用户的数据。
以上三个单元的功能都可以通过处理器来实现。
本实施例中,在用户进行选取后采集这些用户的所用数据,相比于直接对没有关联性的数据进行数据采集,本实施例更注重一个用户的所有数据的关联性,从而可以更准确地了解用户的使用情况,进而达到了准确分析用户需求的效果。
为了简化步骤,优选地,选取单元12还用于从生成的用户ID中随机选取一个或多个用户ID。选取用户的手段既可以是通过特定算法来实现,也可以通过随机选取来实现,本实施例关注的是一个用户的所有数据,但不关注具体是哪个用户,即任意一个用户的所有数据都可以作为数据来源,因此通过随机选取用户ID,并分析该ID的数据,简化了数据采集和数据分析的过程。
图2是根据本发明第二优选实施例的数据采集装置的结构框图。该实施例可以作为图1所示实施例的优选实施方式。
如图2所示,该数据采集装置在图1所示数据采集装置的基础上,还包括获取子单元112和生成子单元114,其中,获取子单元112和生成子单元114均位于生成单元11中。
获取子单元112用于获取用户的计算机环境信息。
获取子单元112获取的计算机环境信息包括计算机的插件检测、地址栏探测、来源探测、系统语言、操作系统版本、浏览器版本和浏览器语言等等,计算机环境信息不包括所处环境的温度等计算机外部信息。
生成子单元114用于根据计算机环境信息生成用户ID。
在该实施例中,通过计算机环境信息生成用户ID,由于计算机环境信息涉及很多方面的特征,因此用户不会具有相同的计算机环境信息,从而也不会具有相同的用户ID,进而提高了数据采集的准确性。
图3是根据本发明第三优选实施例的数据采集装置的结构框图。该实施例可以作为图2所示实施例的优选实施方式。
如图3所示,该数据采集装置在图2所示数据采集装置的基础上,还包括第一获取模块1142、第二获取模块1144、第三获取模块1146和生成模块1148,以上四个模块均位于生成子单元114中。
第一获取模块1142用于获取计算机环境信息对应的字符串。
第二获取模块1144用于获取字符串在哈希函数中对应的哈系数值。
第三获取模块1146用于获取随机数生成器生成的随机数。
生成模块1148用于合并哈系数值与随机数以生成用户ID。
在该实施例中,通过获取以上特征值,可以给每个用户生成唯一的用户ID,提高了数据采集的准确性。
图4是根据本发明第四优选实施例的数据采集装置的结构框图。该实施例可以作为图3所示实施例的优选实施方式。
如图4所示,该数据采集装置在图3所示数据采集装置的基础上,还包括映射子单元122、确定子单元124和选取子单元126,以上三个子单元均位于选取单元12中。
映射子单元122用于将哈希数值映射到数值区间。
确定子单元124用于根据用户预设的采样率确定数值区间中的采样范围。
选取子单元126用于选取映射到采样范围中的哈系数值对应的用户ID。
在该实施例中,通过在预设区间选取用户,实现了等比例采样,达到了更好的数据采集效果。
本发明实施例还提供了一种数据采集方法,该方法可以基于上述的数据采集装置来执行。
图5是根据本发明实施例的数据采集方法的流程图。
如图5所示,该数据采集方法包括如下的步骤S502至步骤S506。
步骤S502,针对不同的用户分别生成不同的用户ID。
对用户的跟踪,需要生成一个统计学上不重复的用户ID。随机算法都需要一个种子,对于传统的js方法来说,传入的种子是系统时间,在高并发的情况下,由于很多用户的时间相同,因此生成的用户ID也容易重复。因此,需要通过每个用户不同的特征,生成不同的用户ID。
本发明实施例中的用户是指互联网中的用户,例如,通过浏览器接收到的用户信息所确定的用户,或者,在服务器中所存储的用户信息所确定的用户。
本实施例通过用户的计算机环境信息来生成用户ID。步骤可以分成以下两步。
首先,获取用户的计算机环境信息。在本实施例中收集的计算机环境信息指的是计算机的内部环境信息,包括计算机的插件检测、地址栏探测、来源探测、系统语言、操作系统版本、浏览器版本和浏览器语言等等,计算机环境信息不包括所处环境的温度等计算机外部信息。
然后,根据计算机环境信息生成用户ID。以这些计算机环境信息作为多个种子输入哈希函数,生成哈希数值,再通过随机数生成器生成随机数,将哈希函数和随机数合并即可得到用户ID,理论上不可能出现完全相同的计算机环境信息,因此通过此方法生成的用户ID可以被认定为唯一的。具体地,先获取计算机环境信息对应的字符串,可以根据浏览器插件列表生成字符串,从地址栏中得到当前访问网址的字符串,通过js(JavaScript脚本)获取到用户来源的网址的字符串,以及通过收到的log信息中获取当前浏览器使用的语言的字符串,再获取字符串在哈希函数中对应的哈系数值,具体地,字符串在经过哈希函数的计算后得出哈系数值,将这些字符串按特定顺序拼接成一个大的字符串输入到哈希函数中返回一个哈希数值,例如设定插件检测得到的字符串的编号为1,对地址栏探测得到的字符串的编号为2,依此类推,当获取到用户的计算机环境信息时,按预设设定的编号顺序对各字符串进行拼接,从而得到哈希函数的输入字符串。在获取哈希数值后,继续获取随机数生成器生成的随机数,例如调用js内置的随机数生成器生成一个随机数,最后合并哈系数值与随机数以生成用户ID。即可作为用户ID。由于哈系数值和随机数都比较长,二者的合并可以保证不会生成重复的用户ID。
传统的流量统计工具通过读取Log来分析流量数据,使用IP区分不同用户依据。而新兴的流量统计工具包括Google Analytics、Webdissector则采用Cookie技术作为区分不同用户。一旦用户访问过设置有WD跟踪代码的页面,我们的WD脚本就会在用户浏览器上植入一个Cookie,上面带有用户身份的唯一标识字符串。下一次用户再次访问此网站的时候,WD脚本就能够识别出这是一个老用户,而不会再生成新的用户ID。
步骤S504,从生成的用户ID中选取一个或多个用户ID。
在本步骤中按照用户ID进行采样,根据获得的唯一确定的用户ID来采集用于的行为数据,提高了用户分析行为的精度。
在本发明的一种优选实施方式中,可以从生成的用户ID中随机选取一个或多个用户ID,随机选择的操作最简便,也可以较好的达到数据采集的效果。
在本发明的另一种优选实施方式中,为了在简化采样操作的同时保证更好的采样效果,优选地,在本实施例中进行等比例采样,具体步骤如下:用户ID是一个普通的字符串,首先需要将哈希数值映射到数值区间,通过哈希函数可以将其映射为一个普通的数值,在对此数值做取模之后可以将其映射到一个数值范围中,例如进行mod 10处理,余数是0-9,取所有余数为1的数值,就可以达到10%的采样效果,即在10000个数值中,采集到1000个数值。通过判断映射的数值的余数是否为1,就可以判断该数值对应的用户是否被采样,最后,选取映射到采样范围中的哈系数值对应的用户ID。
本实施例直接根据用户进行采样,如果一个用户不在采样范围内,其所有行为数据都不被收集分析,如果用户落在采样范围内,则其所有行为数据都被收集分析。
在本实施例的一种实现方式中,1000个用户产生了流量,100个用户产生了购买,即10%的流量购买转化率。使用本实施例的采样方法,对选中的所有用户都进行了分析,因此从统计学的角度来讲,购买转化率也是10%。而如果采用流量和购买单独采样10%的方式,那么极端情况下有可能收集到了100个A类用户的流量数据,100个B类用户的购买数据,两类用户没有交集,购买转化率为0%,因此,通过本实施例提供的采样方式可以准确地对用户行为进行分析。
步骤S506,采集与选取的用户ID对应的用户的数据。
在确定需采样的用户后,采集这些用户的全部行为数据,然后再确定需要发送数据后,通过HTTP协议,将数据发到服务端,以进行之后的数据分析。
从以上的描述中,可以看出,本发明实现了准确采集一些用户的全部行为数据,从而可以准确地分析用户的需求。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。