发明内容
本发明的一个方面提供了一种网页点击位的点击数据获取系统,包括客户端和服务器,其中:客户端包括:唯一标识生成模块,根据网页上的html DOM元素以及其属性为网页上每个点击位生成一个点击位唯一标识;以及参数追加模块,在用户点击一点击位时,将被点击的链接地址追加上该点击位的点击位唯一标识并输出;服务器包括:日志收集模块,从参数追加模块的输出获得用户点击该点击位而生成的http请求中的链接地址和http请求的headers信息中的Referer值;以及数据加工模块,解析该http请求的完整链接地址中的点击位唯一标识,并取出Referer值中不包含点击位唯一标识的部分,将两者关联以计算出该点击位的点击量。
本发明还提供了一种网页点击位的点击数据获取方法,包括:根据网页上的htmlDOM元素以及其属性为网页上每个点击位生成一个点击位唯一标识;在用户点击一点击位时,将被点击的链接地址追加上该点击位的点击位唯一标识获得并输出追加结果;从追加结果获得用户点击该点击位而生成的http请求中的链接地址和http请求的headers信息中的Referer值;以及解析该http请求的完整链接地址中的点击位唯一标识,并取出Referer值中不包含点击位唯一标识的部分,将两者关联以计算出该点击位的点击量。
可选地,唯一标识生成模块生成点击位唯一标识包括:以点击位元素为起点,在html文件中向上找到与该点击位元素距离最近的有唯一属性的元素作为唯一属性元素,如果该点击位元素向上直到根元素都没有具有唯一属性的元素,则该点击位元素相应的唯一属性元素为根元素的下一级元素,如果该点击位元素自身具有唯一属性,则该点击位元素的相应唯一属性元素是它自己;计算出该唯一属性元素与该点击位元素之间有多少个与点击位元素相同的同级元素;以及根据该唯一属性元素、该点击位元素和所述同级元素的数目生成该点击位元素的点击位唯一标识。
可选地,根据该唯一属性元素、该点击位元素和所述同级元素的数目生成该点击位元素的点击位唯一标识包括:如果一个点击位元素自身不具有唯一属性,则该点击位元素的点击位唯一标识表示为:唯一属性元素的元素名称[唯一属性元素的属性]||该点击位元素名称-同级元素数目;如果该点击位元素自身有唯一属性,则其点击位唯一标识表示为:该点击位元素名称[该点击位元素的属性]。
可选地,http请求的Referer值表示点击位所在网页的页面。
可选地,数据加工模块提供以将该http请求的完整链接地址中的点击位唯一标识和Referer值中不包含点击位唯一标识的部分拼接后作为key,将点击量作为value的数据调用接口。
可选地,网页点击位的点击数据获取系统还包括:数据展示模块,获取当前网页中已生成的点击位唯一标识,将当前页面链接和点击位唯一标识拼接后作为key调用所述数据调用接口,并展示返回的点击量数据。
可选地,所述客户端包括所述数据展示模块;并且/或者数据展示模块将点击量数据以蒙层形式展示在点击位元素上。
具体实施方式
根据结合附图对本发明示例性实施例的以下详细描述,本发明的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。
本说明书示意性说明了本发明原理。应当理解的是,尽管这里没有明确描述或示出,本领域的技术人员将能够设想体现本发明原理并包括在本发明精神和范围内的各种布置。
这里所记载的所有示例和条件性语言均为了教导的目的,以帮助读者理解本发明原理以及发明人对现有技术做出贡献的构思,而不会对这里具体记载的示例和条件构成限制。
此外,这里对本发明的原理、方面、实施例及其特定示例做出记载的所有声明意在包括本发明的结构和功能上的等同物。该等同物将包括当前已知的等同物以及将来开发出的等同物,即所开发出来的执行相同功能的任何组件,无论其结构如何。
因此,本领域的技术人员可以理解,框图展示出体现本发明原理的示意性概念图。可以理解,任何流程、流程图、状态转移图、伪代码等意在表现实质上可以在计算机可读介质上表现的、并且由计算机或处理器执行的各个过程,无论是否明确示出该计算机或处理器。
在说明书中涉及本发明原理的“一个实施例”或“实施例”及其其他变型是指:结合实施例描述的特定特征、结构、特性等包括在本发明的至少一个实施例中。因此,贯穿说明书在不同地方出现的短语“在一个实施例中”或“在实施例中”以及任何其他变型不必均指相同的实施例。
应当理解的是,术语“和/或”和“……中的至少一个”的使用,例如在“A和/或B”和“A和B中的至少一个”的情况下,意在包括只选择第一所列项目(A)、或只选择第二所列项目(B)、或选择两个项目(A和B)。作为另一示例,在“A、B和/或C”和“A、B和C中的至少一个”的情况下,这样的表示意在包括只选择第一所列项目(A)、或只选择第二所列项目(B)、或只选择第三所列项目(C)、或只选择第一和第二所列项目(A和B)、或只选择第一和第三所列项目(A和C)、或只选择第二和第三所列项目(B和C)、或选择所有三个项目(A和B和C)。对于本领域和相关领域的普通技术人员来说显而易见的是,对于所列的许多项目,上述内容是可以扩展的。在本发明中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。
在本说明书中,下述用于描述本发明原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本发明的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相似功能和操作。
图1示出了根据本发明实施例的站内点击位的点击数据获取系统的示意框图。该系统包括客户端10和服务器20。
根据本发明的实施例,客户端10包括唯一标识生成模块11、参数追加模块12、和数据展示模块13。服务器20包括日志收集模块21和数据加工模块22。
根据本发明的实施例,唯一标识生成模块11根据网页上的html DOM元素以及其属性为网页上每个链接点击位生成一个唯一标识。根据本发明的实施例,唯一标识生成模块11可使用JavaScript实现。
html DOM是HTML Document Object Model(文档对象模型)的缩写,是适用于HTML/XHTML的文档对象模型。html DOM将网页中的各个元素都看作一个个对象,从而使网页中的元素可以被计算机语言获取或者编辑。例如Javascript就可以利用html DOM动态地修改网页。
DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中导航寻找特定信息。html DOM把HTML文档呈现为节点树结构。
JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能。通常,JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
图2示出了根据本发明实施例的点击位唯一标识生成原理。
如图2所示,以点击位元素为起点,在html文件中向上找到与该点击位元素距离最近的有唯一属性(例如,id属性)的元素(以下简称“唯一属性元素”)。
如果该点击位元素向上直到根元素都没有具有唯一属性的元素,则该点击位元素相应的唯一属性元素为根元素的下一级元素。计算出该唯一属性元素与该点击位元素之间有多少个与点击位元素相同的同级元素。根据该唯一属性元素、该点击位元素和所述同级元素的数目生成该点击位元素的点击位唯一标识。如果该点击位元素自身具有唯一属性,则该点击位元素的相应唯一属性元素是它自己。
根据本发明的实施例,如果一个点击位元素自身不具有唯一属性,则该点击位元素的点击位唯一标识可以表示为:唯一属性元素的元素名称[唯一属性元素的属性]||该点击位元素名称-同级元素数目。如果该点击位元素自身有唯一属性,则其点击位唯一标识可以表示为:该点击位元素名称[该点击位元素的属性]。
例如,如图2所示,点击位元素<a id=“topic”>自身具有id属性,则不需要向上查找,其唯一标识是a[topic]。<a class=“hot”>向上直到根元素都没有包含ID属性的元素,所以以根元素下第一个元素(即body元素)作为唯一属性元素,与<a class=“hot”>同级的<a>元素有3个,所以其唯一标识是body||a-3。<p>元素向上有id属性的元素<div id=’left’>存在,同级的<p>元素有4个,所以其唯一标识就是div[left]||p-4。
参数追加模块12在用户点击链接的行为产生时,将被点击的链接追加上ctagid参数(或其他约定参数)的值。如果参数的追加位置是位于被点击链接之后的第一个参数则使用“?”将其与被点击链接相连接,若非第一个参数则用“&”将其与被点击链接相连接。根据本发明的实施例,参数追加模块例如可以使用JavaScript实现。
例如,如果被点击的链接是www.abc.com/,点击位对应的ctagid值是xyz,则参数追加模块12输出www.abc.com/?ctagid=xyz。又例如,如果被点击的链接是www.abc.com/?p=123,点击位对应的ctagid值是abc,则参数追加模块12输出www.abc.com/?p=123&ctagid=abc。
当用户点击链接后,客户端10将参数追加模块12的输出发送到服务器20的日志收集模块21。日志收集模块21从参数追加模块12的输出解析获得两个值:用户点击链接而生成的http请求中的链接地址(在上面的例子中,链接地址是www.abc.com/?或“www.abc.com/?p=123&”)以及http请求的headers信息中的Referer值。http请求链接中的ctagid即为上一页(由Referer值指示)的点击位唯一标识位。
数据加工模块22解析http请求的完整链接地址中的ctagid参数,并取出Referer值中不包含ctagid参数部分,将两者关联即可算出每个页面链接每个点击位的点击量,并提供以两者拼接后为key,点击量数据为value的数据调用接口。
当需要查看点击位数据时,数据展示模块13首先获取网页中已生成的ctagid,将要查看的点击位链接和ctagid拼接后作为key调用数据加工模块22提供的数据调用接口,并将返回的点击数据以蒙层形式展示在网页的点击位元素模块上,如图3所示。根据本发明的实施例,数据展示模块13可以使用JavaScript实现。
根据本发明的点击数据获取方法和系统,不需要对点击位进行埋点,减少额外工作量,让统计更灵活。另外,在服务端收集数据不需要额外产生日志上报,可以减少通信量,节约网络资源。
根据本发明各实施例的上述方法、设备和/或装置可以通过有计算能力的电子设备执行包含计算机指令的软件来实现。所述有计算能力的电子设备可以包含通用处理器、数字信号处理器、专用处理器、可重新配置处理器等能够执行计算机指令的装置,但不限于此。执行这样的指令使得电子设备被配置为执行根据本发明的上述各项操作。上述各设备和/或模块可以在一个电子设备中实现,也可以在不同电子设备中实现。这些软件可以存储在计算机可读存储介质中。计算机可读存储介质存储一个或多个程序(软件模块),所述一个或多个程序包括指令,当电子设备中的一个或多个处理器执行所述指令时,所述指令使得电子设备执行本发明的方法。
这些软件可以存储为易失性存储器或非易失性存储装置的形式(比如类似ROM等存储设备),不论是可擦除的还是可重写的,或者存储为存储器的形式(例如RAM、存储器芯片、设备或集成电路),或者被存储在光可读介质或磁可读介质上(比如,CD、DVD、磁盘或磁带等等)。应该意识到,存储设备和存储介质是适于存储一个或多个程序的机器可读存储装置的实施例,所述一个程序或多个程序包括指令,当所述指令被执行时,实现本发明的实施例。实施例提供程序和存储这种程序的机器可读存储装置,所述程序包括用于实现本发明的任何一项权利要求所述的装置或方法的代码。此外,可以经由任何介质(比如,经由有线连接或无线连接携带的通信信号)来电传递这些程序,多个实施例适当地包括这些程序。
例如,示例性的计算系统可用于实施各实施例。该计算系统包括计算机。计算机可以包括处理器、存储器以及一个或多个驱动器。驱动器及其关联的计算机存储介质可以提供计算机可读指令的存储、数据结构的存储、程序模块的存储和其他用于计算机的数据的存储。计算机可以实施为传统计算机系统、嵌入式控制计算机、膝上电脑或者服务器计算机、移动设备、机顶盒、公用电话亭、车辆信息系统、移动电话、定制的机器或者其他硬件平台。处理器可以是通用处理器、处理器核、多处理器、多核处理器、图形处理器、数字信号处理(DSP)处理器、在专用集成电路(ASIC)中实现的定制的计算设备、在现场可编程门阵列(FPGA)中实现的定制的计算设备、在任何类型的可编程逻辑中实现的定制的计算设备、状态机、可重新配置的处理器、任何其他处理单元或者其任何组合或者重复。
驱动器、其他存储设备或者它们关联的计算机可读存储介质可以存储操作系统、应用程序、程序模块或数据库。计算机可以包括用户输入设备,用户可以通过该用户输入设备来输入命令和数据。输入设备可以包括电子数字转换器、麦克风、键盘、指示设备或者其任意组合。指示设备的例子可以包括鼠标、跟踪球、光笔、触摸屏或者触摸板。其他至计算机输入设备可以包括操纵杆、游戏手柄、卫星天线、扫描仪等等。输入设备可以通过用户输入接口连接到处理器,该用户输入界面耦合到系统总线。输入设备也可以通过其他接口和总线结构如并行端口、游戏端口或者通用串行总线(USB)来连接。计算机也可以包括其他外围输出设备例如扬声器,其可以通过输出外围设备接口或者类似接口来连接。
计算机可以在联网环境中工作,该联网环境使用了至一个或多个计算机的逻辑连接,例如远程计算机连接到网络接口。远程计算机可以是个人计算机、服务器、路由器、网络PC、对等设备或者其他普通的网络节点。远程计算机可以包括这里关于计算机所描述的元件中的多个或者全部元件。联网环境可以包括网络(WAN)、局域网(LAN)、内联网、英特网或者它们的组合。
当使用在LAN或者无线LAN(WLAN)联网环境中时,计算机可以通过网络接口或者网络适配器连接到LAN。当使用在WAN联网环境中时,计算机可以包括调制解调器或者其他机制用于建立通过WAN的通信。WAN可以包括英特网、所阐述的网络、各种其他网络或者它们的任意组合。应当理解,可以使用在计算机之间建立通信链接、环、格网、总线、云、或者网络的其他机制。
根据一个或多个实施例,计算机可以被配置为使得处理器和/或程序模块可以与基于多处理器的计算机一同运行或者作为基于多处理器的计算机来运行,或者作为执行根据这里提出的实施例的多处理器的虚拟化的计算机来运行。多处理器或者多处理器的虚拟表示可以支持动态中断调度。计算机可以包括与驱动器或者其他存储设备关联的物理的计算机可读存储介质的一个或多个实例。系统总线可以使得处理器能够将代码和/或数据从计算机可读存储介质中读取或者写入其中。该介质可以代表使用任何合适的技术来实现的存储元件形式的装置,包括但不局限于半导体、磁性材料、光学介质、电存储装置、电化学存储装置或者任何其他的这种存储技术。该介质可以代表与存储器关联的部件,无论特征是否为RAM、ROM、闪存或者其他类型的易失性或者非易失性存储器技术。该介质也可以代表辅助存储装置,无论是否实施为存储驱动器。硬驱动实现的特征可以在于固态,或者可以包括存储磁性编码信息的旋转介质。
存储介质可以包括一个或多个程序模块。程序模块可以包括软件指令,当被加载到处理器中并且执行时,这些软件指令将通用计算系统转换为根据本发明来定制的专用计算系统。如本说明书中详细描述的那样,程序模块可以提供各种工具或者技术,计算机可以通过该工具或者技术来参与到使用这里所讨论的部件、逻辑流和/或数据结构的全部的系统或者操作环境中。
处理器可以由任意数量的晶体管或者其他电路元件来构建,它们可以单独地或者共同地具有任意数量的状态。更确切地说,处理器可以作为状态机或者有限状态机来工作。这种机构可以通过加载程序模块中包含的可执行指令来转换到第二机构或者特定的机构中。这些计算机可执行的指令可以通过指定处理器如何在状态之间转变来转换处理器,由此将构成处理器的晶体管或者其他电路元件从第一机构转换到第二机构,其中第二机构可以被具体地配置用于支持动态中断调度。各机构的状态也可以通过接收来自一个或多个用户输入设备、网络接口、其他外围设备、其他接口、一个或多个用户或者其他行为者的输入来被转换。各机构也可以转换各种输出设备如打印机、扬声器、视频显示器等等的状态或者各种物理特征。
将程序模块编码也可以转换存储介质的物理结构。在本说明书的不同实施方式中,物理结构的特定转换可以取决于各种因素。这种因素的例子可以包括(但不局限于):用于实现存储介质的技术,无论该存储介质特征是否为初级或者次级存储装置等等。例如,如果存储介质实现为基于半导体的存储器,当软件被编码在其中时,程序模块可以转换半导体存储器的物理状态。例如,软件可以转换构成半导体存储器的晶体管、电容器或者其他分立电路元件的状态。
作为另一个例子,存储介质可以使用磁性或者光学技术如驱动器来实现。在这种实现中,当软件被编码在其中时,程序模块可以转换磁性介质或者光学介质的物理状态。这些转换可以包括改变给定的磁性介质中的特定位置的磁性特征。这些转换也可以包括改变给定的光学介质中的特定位置的物理特征或者特点,以改变那些位置的光学特征。应当理解,物理介质的各种其他转换也是可能的,而并未脱离本说明书的范围和精神。
根据本发明各实施例的方法、设备和/或装置还可以使用例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC)或可以以用于对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。在以这些方式实现时,所使用的软件、硬件和/或固件被编程或设计为执行根据本发明的相应上述方法、步骤和/或功能。本领域技术人员可以根据实际需要来适当地将这些系统和模块中的一个或多个,或其中的一部分或多个部分使用不同的上述实现方式来实现。这些实现方式均落入本发明的保护范围。
尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。