一种空白坑位监控的方法、系统、电子设备和存储介质与流程

文档序号:15517668发布日期:2018-09-25 18:44阅读:289来源:国知局

本发明涉及计算机技术领域,尤其涉及一种空白坑位监控的方法、系统、电子设备和存储介质。



背景技术:

商城类网站中的商品信息是通过运营人员在后台配置后,展示在网页中的,而在商品过期、下架等这些情况下,如果运营人员没有及时在后台补录商品,就会在商城网页中出现空白的坑位。目前监控空白坑位主要有两种方式,一种是在配置商品信息的后台系统中对坑位数量进行监控,另一种是编写自动化测试用例,利用自动化测试手段对网页进行监控。

后台监控的方法,是因为在后台系统中保存了所有的坑位信息,并且人工配置监控规则,指定坑位最小数量,通过定时执行程序将配置的数量与实际坑位数量作对比,当实际坑位数量小于配置的最小数量时,发出报警。关于自动化测试的方法,需要编写自动化测试脚本,使用可视化自动化测试工具selenium执行自动化脚本,根据测试用例是否执行成功来判断网页中是否有空白坑位。

但是,后台监控空白坑位是在后台系统中使用监控程序,会占用线上服务器资源,而且监控程序无法在各个系统之间通用,后期的开发、维护成本很高。采用自动化测试的方法,会存在执行速度慢的问题,一次任务耗时太长,进而无法满足每小时执行多次任务的需求,并且需要人工编写自动化测试用例,维护的成本很高。



技术实现要素:

有鉴于此,本发明实施例提供一种空白坑位监控的方法、系统、电子设备和存储介质,能够生成监控规则,并且可以在不同的项目中使用,达到不用重复编码以及无需手动配置监控规则的效果。

为实现上述目的,根据本发明的一个方面,提供了一种空白坑位监控的方法。

本发明的一种空白坑位监控的方法包括:获取目标网页的网站地址;判断数据库中是否存在所述目标网页的监控规则;若不存在,生成监控规则;调用监控规则对目标网页的空白坑位进行监控。

可选地,生成监控规则包括:下载目标网页的文档对象模型结构;遍历body节点的儿子节点,找出img标签;按照所述img标签的祖父节点的优先级,排列出所述标签对应的jquery选择器;保存jquery选择器路径和所述jquery选择器对应的坑位数量。

可选地,调用监控规则对目标网页的空白坑位进行监控包括:加载cheerio,并且下载目标网页的文档对象模型结构;读取jquery选择器路径;通过cheerio将jquery选择器定位到所述文档对象模型结构中,并且获取定位的数量;将所述定位的数量与jquery选择器对应的坑位数量进行对比。

可选地,发明的一种空白坑位监控的方法还包括:设置获取目标网页的网站地址的定时时间。

可选地,利用phantomjs下载目标网页的文档对象模型结构;以及,所述祖父节点的优先级为id>class>tagname。

可选地,生成监控规则还包括:记录生成时间并进行保存。

可选地,在node.js中加载cheerio。

为实现上述目的,根据本发明的另一方面,提供了一种空白坑位监控的系统。

本发明的一种空白坑位监控的系统包括:获取模块,用于获取目标网页的网站地址;判断模块,用于判断数据库中是否存在所述目标网页的监控规则;规则生成模块,用于生成监控规则;监控模块,用于调用监控规则对目标网页的空白坑位进行监控。

可选地,规则生成模块包括:文档对象模型结构下载单元,用于下载目标网页的文档对象模型结构;查找单元,用于遍历body节点的儿子节点,找出img标签;排列jquery选择器单元,用于按照所述img标签的祖父节点的优先级,排列出所述标签对应的jquery选择器;以及保存jquery选择器路径和所述jquery选择器对应的坑位数量。

可选地,监控模块包括:加载单元,用于加载cheerio,并且下载目标网页的文档对象模型结构;读取单元,用于读取jquery选择器路径;定位单元,用于通过cheerio将jquery选择器定位到所述文档对象模型结构中,并且获取定位的数量;对比单元,用于将所述定位的数量与jquery选择器对应的坑位数量进行对比。

可选地,本发明的一种空白坑位监控的系统还包括定时设置模块,用于设置获取目标网页的网站地址的定时时间。

可选地,文档对象模型结构下载单元利用phantomjs下载目标网页的文档对象模型结构;以及,所述祖父节点的优先级为id>class>tagname。

可选地,规则生成模块还包括记录生成时间单元,用于记录生成时间并进行保存。

可选地,加载单元在node.js中加载cheerio。

为实现上述目的,根据本发明的再一方面,提供了一种电子设备。

本发明的一种电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述一种空白坑位监控的方法中任一项所述的方法。

为实现上述目的,根据本发明的再一方面,提供了一种非暂态计算机可读存储介质。

本发明的一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行本发明所提供的一种空白坑位监控的方法。

根据本发明的技术方案,上述发明中的一个实施例具有如下优点或有益效果:获取到目标网页的网站地址之后,判断数据库中是否已经存在目标网页的监控规则,若不存在,自动生成监控规则,解决了手动配置监控规则的问题。生成监控规则后或是数据库中已存在目标网页的监控规则,可直接调用监控规则执行监控任务。在现有技术中,网页上的“坑位”,都会和数据库中相应的表对应,服务端的监控手段,需要根据不同的数据库表结构设计不同的监控程序,无法跨项目使用。但是,不管数据库中的表结构怎么设计,展现在网页上的始终是html,所以本发明的技术方案只要通过配置监控规则,就能达到在各个系统之间通用的目的,进而解决了现有技术空白坑位监控中重复编码的问题。而且,本发明的技术方案执行任务周期短,可达到每个小时多次执行任务的目的。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的一种空白坑位监控的方法的主要步骤的示意图;

图2是根据本发明实施例的生成监控规则的过程的示意图;

图3是根据本发明实施例的一种空白坑位监控的系统的示意图;

图4是根据本发明实施例的一种空白坑位监控的系统的主要模块的示意图;

图5是根据本发明实施例的一种空白坑位监控的电子设备的示意图;

图6是根据本发明实施例的一种空白坑位监控的电子设备的硬件结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本发明实施例的一种空白坑位监控的方法的主要步骤的示意图。

如图1所示,本发明实施例的一种空白坑位监控的方法主要包括如下步骤:

s11:获取目标网页的网站地址。并且,设置获取目标网页的网站地址的定时时间(通过定时器设置定时时间),则可定时从配置的监控队列中取得需要监控的网页的网站地址。

s12:判断数据库中是否存在目标网页的监控规则。根据获取的网站地址,在数据库中查询是否存在该目标网页的监控规则,若不存在,进行s13,若存在,则进行s14.

s13:生成监控规则。下载目标网页的文档对象模型(documentobjectmodel,简称dom)结构;遍历body节点的儿子节点,找出img标签;按照img标签的祖父节点的优先级,排列出标签对应的jquery选择器;保存jquery选择器路径和jquery选择器对应的坑位数量。因为对于电商类网站,像商品坑位、广告坑位必定会有图片的,所以可通过img标签作为监控点。并且,为方便后期管理员进行管理,记录生成时间并进行保存。生成监控规则之后,可获得规则数据,其中,规则数据包括目标网页的网站网址、坑位对应的jquery选择器路径、数量、生成时间等。

s14:根据监控规则对目标网页的空白坑位进行分析监控。加载cheerio,并且下载目标网页的文档对象模型结构;读取jquery选择器路径;通过cheerio将jquery选择器定位到文档对象模型结构中,并且获取定位的数量;将定位的数量与jquery选择器对应的坑位数量进行对比。

图2是根据本发明实施例的生成监控规则的过程的示意图。

如图2所示,使用phantomjs下载目标网页的文档对象模型结构,其中,phantomjs为可脚本编程的webkit浏览器引擎,支持多种web标准:文档对象模型操作,css选择器,json,canvas以及svg。下载文档对象模型结构之后,将body节点(根节点)作为当前节点,并判断当前节点是否为img标签。因为body节点是整个页面呈现给用户的区域的最顶层节点,为了保证准确性,需要从最顶层节点向下遍历。如果当前节点为img标签,就不需要遍历它的儿子节点了,且将该节点祖先节点的关键属性按照id>class>tagname的优先级,排列出这个img标签对应的jquery选择器,保存jquery选择器以及更新jquery选择器的数量。若当前节点不是img标签,则获取当前节点的下一个儿子节点,将当前节点压入栈中,然后获得的节点设为当前节点。然后,继续判断该当前节点是否为img标签。如果没有获得当前节点的下一个儿子节点,则从栈中弹出一个节点,将该节点作为当前节点进行继续判断。如是栈为空的,不能弹出节点,则遍历过程结束。即遍历body节点的儿子节点,找出img标签,并将其祖父节点的关键属性按照id>class>tagname的优先级,排列出这个img标签对应的jquery选择器。其中,关键属性,指的是id、class、tagname这三个属性,最后生成的jquery选择器是根据这三个属性组合而成。并且,优先级不需要用户来定义,程序会按照id->class->tagname的先后顺序来定义,定义这个优先级是为了减少生成的规则结果中出现的重复数据。

若数据库中存在目标网页的监控规则,或是已经自动生成监控规之后,调用监控规则即可对目标网页的空白坑位进行监控。首先,在node.js中加载cheerio模块,可以直接使用jquery选择器定位节点。node.js是一个基于chromejavascript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。node.js使用事件驱动,非阻塞i/o模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。cheerio是nodejs的抓取页面模块,为服务器特别定制的,快速、灵活、实施的jquery核心实现。下载目标网页的文档对象模型结构,生成监控规则和实施监控是独立运行的,之前提到的下载文档对象模型结构是在生成监控规则时下载的。而且文档对象模型结构不可以保存,实施监控的时候需要最新的网页文档对象模型,每次运行监控的时候都要下载最新的文档对象模型,并且可保障获取的数据为最新数据。读取jquery选择器路径,将保存的jquery选择器定位到下载的文档对象模型中,每一条都对应到网页中的一组图片,cheerio可以将jquery选择器所代表的那一组图片数量读取出来。将读取的数量与生成监控规则是保存的数量进行对比,若读取的数量小于之前保存的数量,则说明该页面中出现空白的坑位,进一步可调用邮件或短信服务通知相关人员。

图3是根据本发明实施例的一种空白坑位监控的系统的示意图。

如图3所示,本发明实施例的一种空白坑位监控的系统的任务模块是整个程序的入口,在定时器指定的时间执行。任务模块定时从配置的监控队列中取得需要监控的网站地址,根据网站地址在数据库中查询是否存在监控规则,若无监控规则,任务模块将调用规则生成模块生成监控规则;若数据库中存在监控规则,任务模块将调用监控模块根据监控规则执行监控任务。本发明实施例的一种空白坑位监控的系统自动生成监控规则,管理员只需要对规则数据进行简单维护,大大节省了维护成本,不再需要手动配置监控规则。并且,不管数据库中的表结构怎么设计,展现在网页上的始终是html,只要通过配置监控规则,就能达到在各个系统之间通用的目的,进而对不同的网站项目,不需要重新编写代码。本发明实施例的一种空白坑位监控的系统还可及时将网页中的空白坑位告警到相关人员,保证页面的完整性。

图4是根据本发明实施例的一种空白坑位监控的系统的主要模块的示意图。

如图4所示,本发明实施例的一种空白坑位监控的系统包括获取模块、判断模块、规则生成模块和监控模块、定时设置模块。其中,获取模块用于获取目标网页的网站地址,判断模块用于判断数据库中是否存在目标网页的监控规则,规则生成模块用于生成监控规则,监控模块用于调用监控规则对目标网页的空白坑位进行监控;定时设置模块用于设置获取目标网页的网站地址的定时时间。

规则生成模块包括:文档对象模型结构下载单元,用于下载目标网页的文档对象模型结构;查找单元,用于遍历body节点的儿子节点,找出img标签;排列jquery选择器单元,用于按照img标签的祖父节点的优先级,排列出标签对应的jquery选择器;以及保存jquery选择器路径和jquery选择器对应的坑位数量。规则生成模块还包括记录生成时间单元,用于记录生成时间并进行保存,以便于后期对监控规则的管理。本发明实施例的一种空白坑位监控的系统使用img标签作为坑位的关键节点,自动记录img标签的jquery选择器,生成监控规则的数据,进而监控模块通过调用监控规则,可对目标网页的坑位进行监控。

监控模块包括:加载单元,用于加载cheerio,并且下载目标网页的文档对象模型结构,而且加载单元在node.js中加载cheerio。读取单元,用于读取jquery选择器路径;定位单元,用于通过cheerio将jquery选择器定位到文档对象模型结构中,并且获取定位的数量;对比单元,用于将定位的数量与jquery选择器对应的坑位数量进行对比。利用jquery选择器快速定位网页中坑位的数量,简化了计算坑位数量的过程,进而使得任务周期短,频繁对业务的坑位进行监控,若网页出现空白坑位,本发明实施例的系统则会更加及时的发现空白坑位。

图5是根据本发明实施例的一种空白坑位监控的电子设备的示意图。如图5所示,本发明实施例的一种空白坑位监控的电子设备5包括存储器51和至少一个处理器52,其中,存储器51与至少一个处理器52通过总线连接,存储器51存储有可被一个处理器执行的指令,当本实施例的装置5运行时,指令被至少一个处理器执行,以使至少一个处理器能够执行空白坑位监控的方法的流程。

图6是根据本发明实施例的报警阈值自适应的电子设备一种空白坑位监控的电子设备的硬件结构示意图。如图6(以一个处理器为例)所示,本实施例的报警阈值自适应的电子设备一种空白坑位监控的电子设备还包括输入装置63和输出装置64。存储器61、处理器62和输入装置63、输出装置64可以通过总线或者其他方式连接,图6中以通过总线连接为例。存储器61作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的空白坑位监控的报警阈值自适应的配置的方法对应的程序指令/模块(例如,附图4所示的当前环比增长率计算获取模块、先前环比增长率计算判断模块、动态报警阈值计算规则生成模块、监控模块)。处理器62通过运行存储在存储器61中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中空白坑位监控的报警阈值自适应的配置的处理方法。

存储器61可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据空白坑位监控的系统的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器61可选包括相对于处理器62远程设置的存储器,这些远程存储器可以通过网络连接至一种空白坑位监控的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置63可接收输入的数字或字符信息,以及产生与一种空白坑位监控的电子设备的用户设置以及功能控制有关的键信号输入。输出装置64可包括显示屏等显示设备。

一个或者多个模块存储在存储器61中,当被一个或者多个处理器62执行时,执行上述任意方法实施例中的空白坑位监控的系统的处理方法。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非暂态计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemoryram)等。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1