CN104407979A - 脚本检测方法和装置 - Google Patents

脚本检测方法和装置 Download PDF

Info

Publication number
CN104407979A
CN104407979A CN201410779632.2A CN201410779632A CN104407979A CN 104407979 A CN104407979 A CN 104407979A CN 201410779632 A CN201410779632 A CN 201410779632A CN 104407979 A CN104407979 A CN 104407979A
Authority
CN
China
Prior art keywords
script
webpage
detected
originating website
target web
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410779632.2A
Other languages
English (en)
Other versions
CN104407979B (zh
Inventor
李浛天
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201410779632.2A priority Critical patent/CN104407979B/zh
Publication of CN104407979A publication Critical patent/CN104407979A/zh
Application granted granted Critical
Publication of CN104407979B publication Critical patent/CN104407979B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种脚本检测方法和装置。该方法包括:访问原始网站,获取原始网站中加载的一个或多个目标网页页面,对一个或多个目标网页页面进行渲染,生成一个或多个待检测网页页面,通过检测待检测网页页面的脚本是否存在特定标签,来确定待检测网页页面的脚本是否加载成功。本发明解决了相关技术中如何有效地检测网页脚本的问题。

Description

脚本检测方法和装置
技术领域
本发明涉及计算机互联网领域,具体而言,涉及一种脚本检测方法和装置。
背景技术
目前,越来越多的网站选择将第三方javascript脚本加载到自己的网站,当网站很庞大、网页数量很多的时候,就容易出现一些页面被漏掉加载脚本的情况;如何根据网站根域名,想要获取这个网站的所有网页,并且对所有网页去判断是否已经加载了指定脚本,成为一个问题。
相关技术中仅通过解析静态页面的html代码,寻找script标签的src属性、或匹配脚本的特征代码的方式来进行脚本检测,但是这种检测方式对于通过js动态生成的script脚本就会显得捉襟见肘,将会导致准确率的下降;同时,如果src属性稍有变化,或者特征代码稍有变化,也无法进行有效的判断。
针对相关技术中如何有效地检测网页脚本的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种脚本检测方法和装置,以解决现有技术中如何有效地检测网页脚本的问题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种脚本检测方法,该方法包括:访问原始网站,获取原始网站中加载的一个或多个目标网页页面,对一个或多个目标网页页面进行渲染,生成一个或多个待检测网页页面,通过检测待检测网页页面的脚本是否存在特定标签,来确定待检测网页页面的脚本是否加载成功。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种脚本检测装置,该装置包括:访问模块,用于访问原始网站,获取模块,用于获取原始网站中加载的一个或多个目标网页页面,生成模块,用于对一个或多个目标网页页面进行渲染,生成一个或多个待检测网页页面,检测模块,用于通过检测待检测网页页面的脚本是否存在特定标签,来确定待检测网页页面的脚本是否加载成功。
根据本发明实施例,通过脚本检测方法,解决了相关技术中如何有效地检测网页脚本的问题,达到了提高脚本检测准确率的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的脚本检测方法的流程示意图;
图2是根据本发明实施例的脚本检测装置的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面就对本申请涉及到的名词概念进行说明:
js:Javascript,一种由Netscape的LiveScript发展而来的脚本语言,主要目的是为了解决服务器终端语言。
phantomjs:是一个基于js的webkit内核无头浏览器,也就是没有显示界面的浏览器,这样访问网页就省去了浏览器的界面绘制所消耗的系统资源,比较合适用于网络测试。
html:超文本标记语言,标准通用标记语言下的一个应用,“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
src:在html语言中,网页中插入图片所用标签<img>,<img>的src属性用来指定图片位置。
script:用于定义客户端脚本,比如Javascript。
实施例1
根据本发明实施例,提供了一种脚本检测方法的方法实施例。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。
图1是根据本发明实施例的脚本检测方法流程示意图。出于描述的目的,所绘的体系结构仅为合适环境的一个示例,并非对本申请的使用范围或功能提出任何局限。也不应该将该脚本检测方法为对图1所示的任一组件或组合具有任何依赖或需求。
如图1所示,该脚本检测方法可以包括:
S11,访问原始网站。
其中,在上述步骤S11中,可以利用phantomjs构建一个浏览器平台,以此来访问原始网站。通过phantomjs构建一个浏览器平台,将原始网站加载进来,这样访问原始网页就省去了浏览器界面绘制所消耗的系统资源。
S13,获取原始网站中加载的一个或多个目标网页页面。
其中,在上述步骤S13中,通过获取原始网站中加载的一个或多个目标网页页面,可以获取到原始网站的所有链接地址,通过链接地址可以找到一个或多个目标网页页面,获取到所有的目标网页是完成网页页面检测的基础,只有将目标网页页面都获取到,对于我们检测网页页面的脚本的准确率才有意义。
S15,对一个或多个目标网页页面进行渲染,生成一个或多个待检测网页页面。
其中,在上述步骤S15中,可以利用phantomjs构建一个浏览器平台,通过得到的所有链接地址找到一个或多个目标网页页面,将获取到的一个或多个目标网页页面进行渲染,调用phantomjs对目标网页页面进行渲染,对于目标网页页面中包含的是代码,通过对渲染生成一个或多个待检测网页页面,使得待检测网页页面中包含的是对象,例如,通过phantomjs构建一个浏览器平台渲染目标网页页面生成一个或多个待检测网页页面,使得从待检测网页页面中可以读取到待检测网页页面的标签属性等等,基于此,利用phantomjs这一无界面浏览器进行js的渲染,使得动态生成的script被以很高的正确率。
S17,通过检测待检测网页页面的脚本是否存在特定标签,来确定待检测网页页面的脚本是否加载成功;
其中,在上述步骤S17中,通过检测待检测网页页面的脚本中的特定标签来确定待检测网页页面的脚本是否加载成功,例如,上述特定标签可以为script标签,通过检测待检测网页页面的脚本的是否出现script标签,来确定待检测网页页面的脚本是否加载成功。
本申请上述实施例1的方法,提供了一种脚本检测方法,该方法通过访问原始网站,获取原始网站中加载的一个或多个目标网页页面,对一个或多个目标网页页面进行渲染,生成一个或多个待检测网页页面,通过检测待检测网页页面的脚本是否存在特定标签,来确定待检测网页页面的脚本是否加载成功;与现有技术相比,提高了脚本检测的准确率。
一种优选的实施方案,在步骤S13中,该方法还包括:
S131,加载原始网站;
在上述步骤S131中,加载原始网站是利用phantomjs构建一个浏览器平台,以此来对要分析的页面中的js来进行解析,phantomjs为开发人员提供了一组API,通过phantomjs构建一个浏览器平台,将原始网站加载进来,这样访问网站网页就省去了浏览器界面绘制所消耗的系统资源,所以不再请求多余的图片、多媒体等资源,加快了原始网站网页的加载速度;上述原始网站网页为超文本标记语言html页面。
S133,监听原始网站中的网页页面是否发生跳转事件;
在上述步骤S133中,上述原始网站网页为超文本标记语言html页面,在利用phantomjs构建的浏览器中加载html页面,并监听html页面是否发生跳转事件,通过监听跳转时间来获取原始网站网页的所有链接地址,从而获取一个或多个目标网页页面。
S135,在监听到原始网站中的网页页面发生跳转事件的情况下,阻塞原始网站中的网页页面发生跳转;
在上述步骤S135中,原始网站网页页面为html页面,当html页面执行跳转指令时,监听到html页面发生跳转事件,阻塞html页面跳转至目标网页页面,终止目标网页页面的加载,并截获html页面的页面跳转请求;阻塞html页面跳转至目标网页页面可以阻止多余内容的加载,如此,不需要消耗过多的资源在多余的页面加载请求上。
S137,截获原始网站中的网页页面的页面跳转请求,从页面跳转请求中读取需要发生跳转的网页页面的链接地址;
在上述步骤S137中,原始网站网页页面为html页面,在html页面跳转请求中包含有原始网站网页页面所要跳转到的目标网页页面的链接地址,该链接地址为统一资源定位器URL;所以,在截获html页面的页面跳转请求后,读取目标网页页面的链接地址URL,由于本方法是基于phantomjs的点击行为进行分析的,固可以非常完整地解析出网页中所包含的所有链接,不会受到js动态句法的干扰。
S139,通过链接地址而获取目标网页页面。
在上述步骤S139中,上述步骤中通过获取到的链接地址URL来获取目标网页页面,通过获取到的目标网页页面来最终完成检测待检测网页页面的脚本加载成功率的目的。
一种优选的实施方案,在步骤S17中,该方法还包括:
S171,在检测到待检测网页页面的脚本中的src属性值与预定属性值匹配,和/或,在脚本的运行环境中存在固定类名,确定待检测网页页面的脚本加载成功;
在上述步骤S171中,检测已生成的待检测网页页面的脚本,用待检测网页页面的脚本中的src属性值去匹配预定属性,和/或,用待检测网页页面的的运行环境中去匹配固定类名,在检测到待检测网页页面的脚本中的src属性值与预定属性值匹配,和/或,在脚本的运行环境中存在固定类名,确定待检测网页页面的脚本加载成功;通过以上检测方法可以检测出待检测网页页面的脚本已经成功加载。
S173,在检测到待检测网页页面的脚本中的src属性值与预定属性值不匹配,和/或,在脚本的运行环境中不存在固定类名,确定待检测网页页面的脚本加载失败。
在上述步骤S173中,检测已生成的待检测网页页面的脚本,用待检测网页页面的脚本中的src属性值去匹配预定属性,和/或,用待检测网页页面的运行环境中去匹配固定类名,在检测到待检测网页页面的脚本中的src属性值与预定属性值不匹配,和/或,在脚本的运行环境中不存在固定类名,确定待检测网页页面的脚本加载失败;通过以上检测方法可以检测出待检测网页页面的脚本加载失败。
一种可选的实施方案,在步骤S173之后,该方法还包括:
S175,通过调用延迟函数等待一个预设时间,返回检测待检测网页页面的脚本是否存在特定标签的步骤,直至待检测网页页面的脚本加载成功。
在上述步骤S175中,上述预设时间是开发人员来根据实际情况来设置的,通过等待一个固定时间,再次检测待检测网页页面的脚本是否存在特定标签(例如script标签)的步骤,直至待检测网页页面的脚本加载成功;通过此步骤,可以消除延时对本检测方法的影响,进一步提高了该检测方法的成功率。
一种优选的实施方案,在步骤S17之后,该方法还包括:
S181,保存待检测网页页面的脚本加载成功的记录;
在上述步骤S181中,通过保存待检测网页页面的脚本的加载成功记录,可以供开发人员调取数据,了解检测结果,进一步分析和统计检测结果。
S183,根据待检测网页页面的脚本加载成功的记录值,计算待检测网页页面的脚本加载成功的成功率。
在上述步骤S183中,读取待检测网页页面的脚本的加载成功的记录值后,可以根据待检测网页页面的脚本的记录值计算待检测网页页面的脚本加载成功的成功率,计算出的成功率可以方便开发人员统计和分析,进一步优化和提高加载的成功率。
本发明提出的一种脚本检测方法,通过访问原始网站,获取原始网站中加载的一个或多个目标网页页面,对一个或多个目标网页页面进行渲染,生成一个或多个待检测网页页面,通过检测待检测网页页面的脚本是否存在特定标签,来确定待检测网页页面的脚本是否加载成功;因此,本申请提供了一种有效地检测网页脚本的方法,即通过访问原始网站的网页页面,来获取原始网站网页页面的所有链接地址,通过所获取到的所有链接地址来获取一个或多个目标网页页面,并对这一个或多个目标网页页面进行渲染,通过渲染对应的生成一个或多个待检测网页页面,对生成的待检测网页页面的脚本进行检测,检测该待检测网页页面的脚本是否存在特定标签,最终确定该待检测网页页面的脚本是否加载成功;基于此,通过上述方法,可以解决现有技术中如何有效地检测网页脚本的问题,最终提高网页页面的脚本检测的准确率。
实施例2
本发明实施例还提供了一种脚本检测装置,本申请上述实施例所提供的装置可以在计算机终端或移动终端上运行,但不限于此。
图2是根据本发明是实施例的脚本检测装置的结构示意图。如图2所示,该装置包括:访问模块21、获取模块22、生成模块23和检测模块24;
其中,访问模块21,用于访问原始网站;
在上述访问模块21中,利用phantomjs构建一个浏览器平台,以此来访问原始网站,通过phantomjs构建一个浏览器平台,将原始网站加载进来,这样访问原始网站就省去了浏览器界面绘制所消耗的系统资源。
获取模块22,连接至访问模块21,用于获取原始网站中加载的一个或多个目标网页页面;
在上述获取模块22中,通过获取原始网站中加载的一个或多个目标网页页面,可以获取到原始网站的所有链接地址,通过链接地址可以找到一个或多个目标网页页面,获取到所有的目标网页是完成网页页面检测的基础,只有将目标网页页面都获取到,对于我们检测网页页面的脚本的准确率才有意义。
生成模块23,连接至获取模块22,用于对一个或多个目标网页页面进行渲染,生成一个或多个待检测网页页面。
在上述生成模块23中,利用phantomjs构建一个浏览器平台,通过得到的所有链接地址找到一个或多个目标网页页面,将获取到的一个或多个目标网页页面进行渲染,调用phantomjs对目标网页页面进行渲染,对于目标网页页面中包含的是代码,通过对渲染生成一个或多个待检测网页页面,使得待检测网页页面中包含的是对象,例如,通过phantomjs构建一个浏览器平台渲染目标网页页面生成一个或多个待检测网页页面,使得从待检测网页页面中可以读取到待检测网页页面的标签属性等等,基于此,利用phantomjs这一无界面浏览器进行js的渲染,使得动态生成的script被以很高的正确率。
检测模块24,连接至生成模块23,用于通过检测待检测网页页面的脚本是否存在特定标签,来确定待检测网页页面的脚本是否加载成功。
在上述检测模块24中,通过检测待检测网页页面的脚本中的特定标签来确定待检测网页页面的脚本是否加载成功,例如,上述特定标签可以为script标签,通过检测待检测网页页面的脚本是否出现script标签,来确定待检测网页页面的脚本是否加载成功。
本申请上述实施例2的装置,提供了一种脚本检测装置,该装置通过访问模块21访问原始网站,通过获取模块22获取原始网站中加载的一个或多个目标网页页面,通过生成模块23对一个或多个目标网页页面进行渲染,生成一个或多个待检测网页页面,通过检测模块24通过检测待检测网页页面的脚本是否存在特定标签,来确定待检测网页页面的脚本是否加载成功;与现有技术相比,更加有效地检测网页页面的脚本。
一种优选的方案中,该装置包括图2所示的所有结构,其中,该获取模块22还包括:加载单元、监听单元、阻塞单元、截获单元和读取单元,下面对该装置进行说明。
加载单元,用于加载原始网站;
在上述加载单元中,加载原始网站是利用phantomjs构建一个浏览器平台,以此来对要分析的页面中的js来进行解析,phantomjs为开发人员提供了一组API,通过phantomjs构建一个浏览器平台,将原始网站加载进来,这样访问网站网页就省去了浏览器界面绘制所消耗的系统资源,所以不再请求多余的图片、多媒体等资源,加快了原始网站网页的加载速度;上述原始网站网页为超文本标记语言html页面。
监听单元,用于监听原始网站中的网页页面是否发生跳转事件;
在上述监听单元中,上述原始网站网页为超文本标记语言html页面,在利用phantomjs构建的浏览器中加载html页面,并监听html页面是否发生跳转事件,通过监听跳转时间来获取原始网站网页的所有链接地址,从而获取一个或多个目标网页页面。
阻塞单元,用于在监听到原始网站中的网页页面发生跳转事件的情况下,阻塞原始网站中的网页页面发生跳转;
在上述阻塞单元中,原始网站网页页面为html页面,当html页面执行跳转指令时,监听到html页面发生跳转事件,阻塞html页面跳转至目标网页页面,终止目标网页页面的加载,并截获html页面的页面跳转请求;阻塞html页面跳转至目标网页页面可以阻止多余内容的加载,如此,不需要消耗过多的资源在多余的页面加载请求上。
截获单元,用于截获原始网站中的网页页面的页面跳转请求,从页面跳转请求中读取需要发生跳转的网页页面的链接地址;
在上述截获单元中,原始网站网页页面为html页面,在html页面跳转请求中包含有原始网站网页页面所要跳转到的目标网页页面的链接地址,该链接地址为统一资源定位器URL;所以,在截获html页面的页面跳转请求后,读取目标网页页面的链接地址URL,由于本方法是基于phantomjs的点击行为进行分析的,固可以非常完整地解析出网页中所包含的所有链接,不会受到js动态句法的干扰。
获取单元,用于通过链接地址而获取目标网页页面。
在上述获取单元中,通过获取到的链接地址URL来获取目标网页页面,通过获取到的目标网页页面来最终完成检测待检测网页页面的脚本是否加载成功的目的。
一种优选的方案中,该装置包括图2中所有结构,其中,该检测模块24包括:加载成功单元和加载失败单元,下面对该装置进行说明。
加载成功单元,用于在检测到待检测网页页面的脚本中的src属性值与预定属性值匹配,和/或,在脚本的运行环境中存在固定类名,确定待检测网页页面的脚本加载成功;
在上述加载成功单元中,检测已生成的待检测网页页面的脚本,用待检测网页页面的脚本中的src属性值去匹配预定属性,和/或,用待检测网页页面的运行环境中去匹配固定类名,在检测到所述待检测网页页面的脚本中的src属性值与预定属性值匹配,和/或,在脚本的运行环境中存在固定类名,确定所述待检测网页页面的脚本加载成功;通过以上检测方法可以检测出待检测网页页面的脚本已经成功加载。
加载失败单元,用于在检测到待检测网页页面的脚本中的src属性值与预定属性值不匹配,和/或,在脚本的运行环境中不存在固定类名,确定待检测网页页面的脚本加载失败。
在上述加载失败单元中,检测已生成的待检测网页页面的脚本,用待检测网页页面的脚本中的src属性值去匹配预定属性,和/或,用待检测网页页面的运行环境中去匹配固定类名,在检测到待检测网页页面的脚本中的src属性值与预定属性值不匹配,和/或,在脚本的运行环境中不存在固定类名,确定待检测网页页面的脚本加载失败;通过以上检测方法可以检测出待检测网页页面的脚本加载失败。
一种优选的方案中,该装置中的检测模块24还包括:延迟加载单元,下面对该装置进行说明。
延迟加载单元,连接至加载失败单元,用于通过调用延迟函数等待一个预设时间,返回检测待检测网页页面的脚本是否存在特定标签的步骤,直至待检测网页页面的脚本加载成功。
在上述延迟加载单元中,上述预设时间是开发人员来根据实际情况来设置的,通过等待一个固定时间,再次检测待检测网页页面的脚本是否存在特定标签(例如script标签)的步骤,直至待检测网页页面的脚本加载成功;通过此步骤,可以消除延时对本检测方法的影响,进一步提高了该脚本检测方法的准确率。
一种优选的方案中,该装置还包括:记录模块和计算模块,下面对该装置进行说明。
记录模块,连接至延迟加载单元,用于保存待检测网页页面的脚本加载成功的记录。
在上述延迟加载单元中,通过保存待检测网页页面的脚本的加载成功记录,可以供开发人员调取数据,了解检测结果,进一步分析和统计检测结果。
计算模块,连接至记录模块,用于根据待检测网页页面的脚本加载成功的记录值,计算待检测网页页面的脚本加载成功的成功率。
在上述计算单元中,读取待检测网页页面的脚本的加载成功的记录值后,可以根据待检测网页页面的脚本的记录值计算待检测网页页面的脚本加载成功的成功率,计算出的成功率可以方便开发人员统计和分析,进一步优化和提高加载的准确率率。
本发明提出的一种脚本检测装置,通过访问模块21访问原始网站,通过获取模块22获取原始网站中加载的一个或多个目标网页页面,通过生成模块23对一个或多个目标网页页面进行渲染,生成一个或多个待检测网页页面,通过检测模块24检测待检测网页页面的脚本是否存在特定标签,来确定待检测网页页面的脚本是否加载成功;因此,本申请提供了一种有效地检测网页脚本的装置,即通过访问模块21访问原始网站的网页页面,通过获取模块22来获取原始网站网页页面的所有链接地址,通过所获取到的所有链接地址来获取一个或多个目标网页页面,并对这一个或多个目标网页页面通过生成模块23进行渲染,通过渲染对应的生成一个或多个待检测网页页面,对生成的待检测网页页面的脚本进行检测,通过检测模块24检测该待检测网页页面的脚本是否存在特定标签,最终确定该待检测网页页面的脚本是否加载成功;基于此,通过上述装置,可以解决现有技术中如何有效地检测网页脚本的问题,最终提高网页页面的脚本的检测准确率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种脚本检测方法,其特征在于,包括:
访问原始网站;
获取所述原始网站中加载的一个或多个目标网页页面;
对所述一个或多个目标网页页面进行渲染,生成一个或多个待检测网页页面;
通过检测所述待检测网页页面的脚本是否存在特定标签,来确定所述待检测网页页面的脚本是否加载成功。
2.根据权利要求1所述的方法,其特征在于,获取所述原始网站中加载的一个或多个目标网页页面的步骤包括:
加载所述原始网站;
监听所述原始网站中的网页页面是否发生跳转事件;
在监听到原始网站中的网页页面发生所述跳转事件的情况下,阻塞所述原始网站中的网页页面发生跳转;
截获所述原始网站中的网页页面的页面跳转请求,从所述页面跳转请求中读取需要发生跳转的网页页面的链接地址;
通过所述链接地址而获取所述目标网页页面。
3.根据权利要求1所述的方法,其特征在于,通过检测所述待检测网页页面的脚本是否存在特定标签,来确定所述待检测网页页面的脚本是否加载成功的步骤包括:
在检测到所述待检测网页页面的脚本中的src属性值与预定属性值匹配,和/或,在所述脚本的运行环境中存在固定类名,确定所述待检测网页页面的脚本加载成功;
在检测到所述待检测网页页面的脚本中的src属性值与预定属性值不匹配,和/或,在所述脚本的运行环境中不存在固定类名,确定所述待检测网页页面的脚本加载失败。
4.根据权利要求3所述的方法,其特征在于,在确定所述待检测网页页面的脚本加载失败之后,所述方法还包括:
通过调用延迟函数等待一个预设时间,返回检测所述待检测网页页面的脚本是否存在特定标签的步骤,直至所述待检测网页页面的脚本加载成功。
5.根据权利要求4所述的方法,其特征在于,在所述待检测网页页面的脚本加载成功之后,所述方法还包括:
保存所述待检测网页页面的脚本加载成功的记录;
根据所述待检测网页页面的脚本加载成功的记录值,计算所述待检测网页页面的脚本加载成功的成功率。
6.一种脚本检测装置,其特征在于,包括:
访问模块,用于访问原始网站;
获取模块,用于获取所述原始网站中加载的一个或多个目标网页页面;
生成模块,用于对所述一个或多个目标网页页面进行渲染,生成一个或多个待检测网页页面;
检测模块,用于通过检测所述待检测网页页面的脚本是否存在特定标签,来确定所述待检测网页页面的脚本是否加载成功。
7.根据权利要求6所述的装置,其特征在于,所述获取模块包括:
加载单元,用于加载所述原始网站;
监听单元,用于监听所述原始网站中的网页页面是否发生跳转事件;
阻塞单元,用于在监听到原始网站中的网页页面发生所述跳转事件的情况下,阻塞所述原始网站中的网页页面发生跳转;
截获单元,用于截获所述原始网站中的网页页面的页面跳转请求,从所述页面跳转请求中读取需要发生跳转的网页页面的链接地址;
获取单元,用于通过所述链接地址而获取所述目标网页页面。
8.根据权利要求6所述的装置,其特征在于,所述检测模块包括:
加载成功单元,用于在检测到所述待检测网页页面的脚本中的src属性值与预定属性值匹配,和/或,在所述脚本的运行环境中存在固定类名,确定所述待检测网页页面的脚本加载成功;
加载失败单元,用于在检测到所述待检测网页页面的脚本中的src属性值与预定属性值不匹配,和/或,在所述脚本的运行环境中不存在固定类名,确定所述待检测网页页面的脚本加载失败。
9.根据权利要求8所述的装置,其特征在于,所述检测模块还包括:
延迟加载单元,用于通过调用延迟函数等待一个预设时间,返回检测所述待检测网页页面的脚本是否存在特定标签的步骤,直至所述待检测网页页面的脚本加载成功。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
记录模块,用于保存所述待检测网页页面的脚本加载成功的记录;
计算模块,用于根据所述待检测网页页面的脚本加载成功的记录值,计算所述待检测网页页面的脚本加载成功的成功率。
CN201410779632.2A 2014-12-15 2014-12-15 脚本检测方法和装置 Active CN104407979B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410779632.2A CN104407979B (zh) 2014-12-15 2014-12-15 脚本检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410779632.2A CN104407979B (zh) 2014-12-15 2014-12-15 脚本检测方法和装置

Publications (2)

Publication Number Publication Date
CN104407979A true CN104407979A (zh) 2015-03-11
CN104407979B CN104407979B (zh) 2017-06-30

Family

ID=52645612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410779632.2A Active CN104407979B (zh) 2014-12-15 2014-12-15 脚本检测方法和装置

Country Status (1)

Country Link
CN (1) CN104407979B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975393A (zh) * 2016-05-04 2016-09-28 腾讯科技(深圳)有限公司 一种页面显示的检测方法及系统
CN107957947A (zh) * 2017-12-04 2018-04-24 山东百盟信息技术有限公司 基于iptv浏览器的异常网页恢复方法、介质及设备
CN109740100A (zh) * 2019-01-03 2019-05-10 北京字节跳动网络技术有限公司 一种网页节点嗅探方法、装置、设备和储存介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901232A (zh) * 2009-05-31 2010-12-01 西门子(中国)有限公司 用于处理网页数据的方法和装置
CN101630325B (zh) * 2009-08-18 2012-05-30 北京大学 一种基于脚本特征的网页聚类方法
CN103365919B (zh) * 2012-04-09 2018-07-31 北京京东尚科信息技术有限公司 网页解析容器及方法
US8548917B1 (en) * 2012-09-07 2013-10-01 Amazon Technologies, Inc. Detection of child frames in web pages

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975393A (zh) * 2016-05-04 2016-09-28 腾讯科技(深圳)有限公司 一种页面显示的检测方法及系统
CN107957947A (zh) * 2017-12-04 2018-04-24 山东百盟信息技术有限公司 基于iptv浏览器的异常网页恢复方法、介质及设备
CN109740100A (zh) * 2019-01-03 2019-05-10 北京字节跳动网络技术有限公司 一种网页节点嗅探方法、装置、设备和储存介质
CN109740100B (zh) * 2019-01-03 2022-02-22 北京字节跳动网络技术有限公司 一种网页节点嗅探方法、装置、设备和储存介质

Also Published As

Publication number Publication date
CN104407979B (zh) 2017-06-30

Similar Documents

Publication Publication Date Title
WO2016173200A1 (zh) 用于检测恶意网址的方法和系统
CN104408204A (zh) 网页页面链接地址的获取方法和装置
CN107609135B (zh) 页面元素确定方法及设备、用户行为路径确定方法及装置
US9792365B2 (en) Method and system for tracking and gathering multivariate testing data
US20190340205A1 (en) Reducing redirects
US9842133B2 (en) Auditing of web-based video
US20160359989A1 (en) Recording And Triggering Web And Native Mobile Application Events With Mapped Data Fields
CN113590497A (zh) 业务服务的测试方法、装置、电子设备及存储介质
CN110442815B (zh) 页面生成方法、系统、装置及计算机可读存储介质
CN104956362A (zh) 分析web应用程序的结构
CN108304410A (zh) 一种异常访问页面的检测方法、装置及数据分析方法
US9740668B1 (en) Plotting webpage loading speeds and altering webpages and a service based on latency and pixel density
US10164848B1 (en) Web service fuzzy tester
US10705949B2 (en) Evaluation of library test suites using mutation testing
CN102870118A (zh) 用户行为的获取方法、设备及系统
Tuovenen et al. MAuto: Automatic mobile game testing tool using image-matching based approach
CN104407979A (zh) 脚本检测方法和装置
CN104158697B (zh) 一种死链检测方法及装置
JP6505849B2 (ja) 要素識別子の生成
Vogel et al. An in-depth analysis of web page structure and efficiency with focus on optimization potential for initial page load
CN103955425A (zh) 网页web探索测试装置及方法
CN113362173A (zh) 防重机制验证方法、验证系统、电子设备及存储介质
CN110708270B (zh) 异常链接检测方法以及装置
CN112749351A (zh) 链接地址确定方法、装置、计算机可读存储介质及设备
CN110691005A (zh) 一种网站监测系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Script detection method and device

Effective date of registration: 20190531

Granted publication date: 20170630

Pledgee: Shenzhen Black Horse World Investment Consulting Co.,Ltd.

Pledgor: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Registration number: 2019990000503

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Patentee after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Patentee before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

PP01 Preservation of patent right
PP01 Preservation of patent right

Effective date of registration: 20240604

Granted publication date: 20170630