CN109635175A - 页面数据拼接方法、装置、可读存储介质和电子设备 - Google Patents
页面数据拼接方法、装置、可读存储介质和电子设备 Download PDFInfo
- Publication number
- CN109635175A CN109635175A CN201811314401.9A CN201811314401A CN109635175A CN 109635175 A CN109635175 A CN 109635175A CN 201811314401 A CN201811314401 A CN 201811314401A CN 109635175 A CN109635175 A CN 109635175A
- Authority
- CN
- China
- Prior art keywords
- page
- operating method
- data
- page data
- executable
- 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
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本公开涉及一种页面数据拼接方法、装置、可读存储介质和电子设备,所述方法包括:根据第一页面中各个操作方法的代码生成第一语法树,其中,所述操作方法为对页面内容或页面节点进行修改的方法;基于所述第一语法树,确定所述各个操作方法是否可执行;根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接,或者生成与所述第一页面对应的页面数据拼接模板。因此,通过上述技术方案,可以在不经过浏览器内核加载的情况下,准确地确定出页面中的数据的正确位置,可以避免模拟浏览器内核所造成的资源占用,为正确抓取页面数据提供支持。同时,简化页面数据拼接的流程,提高页面数据拼接的效率,提升用户使用体验。
Description
技术领域
本公开涉及计算机技术领域,具体地,涉及一种页面数据拼接方法、装置、可读存储介质和电子设备。
背景技术
现有的网页在显示时,通过会采用懒加载的方式提高网页的响应速度。但是由于页面是通过懒加载的方式进行显示,未显示的网页部分的数据并未存储在相应的节点下,难以准确地抓取页面内容。
发明内容
本公开的目的是提供一种快速、简捷地页面数据拼接方法、装置、可读存储介质和电子设备。
为了实现上述目的,根据本公开的第一方面,提供一种页面数据拼接方法,所述方法包括:
根据第一页面中各个操作方法的代码生成第一语法树,其中,所述操作方法为对页面内容或页面节点进行修改的方法;
基于所述第一语法树,确定所述各个操作方法是否可执行;
根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接,或者生成与所述第一页面对应的页面数据拼接模板。
可选地,所述基于所述第一语法树,确定所述各个操作方法是否可执行,包括:
按照所述第一页面的页面源代码顺序,遍历各个所述操作方法,并针对当前遍历到的操作方法执行以下操作:
基于所述第一语法树,确定所述当前遍历到的操作方法的被调用位置;
在所述第一页面的页面源代码中查询所述当前遍历到的操作方法的操作数据;
在确定出所述被调用位置且查询到所述操作数据时,确定所述当前遍历到的操作方法可执行。
可选地,所述方法包括所述根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接的步骤;
其中,所述根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接,包括:
在所述可执行的操作方法的所述被调用位置处执行所述操作方法。
可选地,所述方法包括所述根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板的步骤;
其中,所述根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板,包括:
将所述可执行的操作方法与其被调用位置、所述操作数据的存储位置三者之间的对应关系记录在所述页面数据拼接模板中。
可选地,所述方法包括所述根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板的步骤;以及,所述方法还包括:
根据页面URL对多个页面进行分组,获得至少一个页面分组,每个页面分组具有对应的分组标识;
针对每个页面分组,从当前页面分组中选取至少一个页面依次确定为所述第一页面;以及
在生成与所述第一页面对应的页面数据拼接模板之后,将所述第一页面所属的页面分组对应的分组标识与所述页面数据拼接模板相关联。
可选地,所述方法还包括:
获取第二页面的URL;
在所述至少一个页面分组中,根据获取到的所述URL确定所述第二页面对应的第一页面分组;
在与所述第一页面分组的分组标识相关联的页面数据拼接模板中,确定与所述第二页面对应的第一页面数据拼接模板;
基于所述第一页面数据拼接模板对所述第二页面进行页面数据拼接。
根据本公开的第二方面,提供一种页面数据拼接装置,所述装置包括:
生成模块,用于根据第一页面中各个操作方法的代码生成第一语法树,其中,所述操作方法为对页面内容或页面节点进行修改的方法;
第一确定模块,用于基于所述第一语法树,确定所述各个操作方法是否可执行;
处理模块,用于根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接,或者生成与所述第一页面对应的页面数据拼接模板。
可选地,所述第一确定模块用于按照所述第一页面的页面源代码顺序,遍历各个所述操作方法,包括:
第一确定子模块,用于基于所述第一语法树,确定所述当前遍历到的操作方法的被调用位置;
查询子模块,用于在所述第一页面的页面源代码中查询所述当前遍历到的操作方法的操作数据;
第二确定子模块,用于在确定出所述被调用位置且查询到所述操作数据时,确定所述当前遍历到的操作方法可执行。
可选地,所述处理模块用于根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接,包括:
在所述可执行的操作方法的所述被调用位置处执行所述操作方法。
可选地,所述处理模块用于根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板,包括:
将所述可执行的操作方法与其被调用位置、所述操作数据的存储位置三者之间的对应关系记录在所述页面数据拼接模板中。
可选地,所述处理模块用于根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板;以及,所述装置还包括:
分组模块,用于根据页面URL对多个页面进行分组,获得至少一个页面分组,每个页面分组具有对应的分组标识;
第二确定模块,用于针对每个页面分组,从当前页面分组中选取至少一个页面依次确定为所述第一页面;以及
关联模块,用于在生成与所述第一页面对应的页面数据拼接模板之后,将所述第一页面所属的页面分组对应的分组标识与所述页面数据拼接模板相关联。
可选地,所述装置还包括:
获取模块,用于获取第二页面的URL;
第三确定模块,用于在所述至少一个页面分组中,根据获取到的所述URL确定所述第二页面对应的第一页面分组;
第四确定模块,用于在与所述第一页面分组的分组标识相关联的页面数据拼接模板中,确定与所述第二页面对应的第一页面数据拼接模板;
拼接模块,用于基于所述第一页面数据拼接模板对所述第二页面进行页面数据拼接。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面任一项所述方法的步骤。
根据本公开的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面任一项所述方法的步骤。
在上述技术方案中,通过确定页面中可执行的操作方法,从而可以根据该操作方法对第一页面中的数据进行拼接,或者生成与第一页面对应的页面数据拼接模板。因此,通过上述技术方案,可以在不经过浏览器内核加载的情况下,准确地确定出页面中的数据的正确位置,可以避免模拟浏览器内核所造成的资源占用,为正确抓取页面数据提供支持。同时,根据确定页面中可执行的操作方法进行操作,也可以有效避免页面中的其他方法,如网页渲染方法等对页面数据拼接的干扰,简化页面数据拼接的流程,提高页面数据拼接的效率,提升用户使用体验。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据本公开的一种实施方式提供的页面数据拼接方法的流程图;
图2是基于所述第一语法树,确定所述各个操作方法是否可执行的一种示例性实现方式的流程图;
图3是根据本公开的一种实施方式提供的页面数据拼接装置的框图;
图4是根据本公开的一种实施方式提供的页面数据拼接装置的第一确定模块的框图;
图5是根据一示例性实施例示出的一种电子设备的框图;
图6是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1所示,为根据本公开的一种实施方式提供的页面数据拼接方法的流程图,如图1所示,所述方法包括:
在S11中,根据第一页面中各个操作方法的代码生成第一语法树,其中,所述操作方法为对页面内容或页面节点进行修改的方法。
在现有的网页显示时,若是通过懒加载的方式进行加载,则会在页面显示到相应的位置时,才会对该位置进行相应的操作,使得页面显示正确的数据。而在对页面进行加载时,也只有对页面内容或页面节点进行修改的方法才会对页面中的数据进行操作,从而使得页面显示正确的数据。本申请正是基于这一思想,通过确定页面中的各个操作方法实现对页面数据的拼接。
其中,操作方法为JS中的原生方法,例如,innerText方法用于在控件中添加文本,document.createElement()、document.createTextNode()用于创建文档元素等。本公开中将对页面内容进行修改,如,增加页面中的节点、修改页面中的字符串;以及对页面节点进行修改等所使用的原生方法确定为操作方法,对页面节点进行修改包括修改页面节点的属性等。示例地,可以将js中的操作方法进行枚举并存储,以便于快速确定页面中的操作方法。
之后,在确定出页面中的操作方法之后,可以根据该各个操作方法的代码生成第一语法树,其中该语法树可以是AST(abstract syntax tree,抽象语法树),根据代码生成语法树的方式为现有技术,在此不再赘述。
在S12中,基于第一语法树,确定各个操作方法是否可执行。
其中,在第一语法树中包含有各个操作方法的属性以及各个操作方法之间的调用关系等。可选地,所述基于所述第一语法树,确定所述各个操作方法是否可执行的一种示例性实现方式如下,如图2所示,包括:
按照第一页面的页面源代码顺序,遍历各个操作方法,示例地,可以按照页面源代码的读取顺序,依次遍历各个操作方法,本公开对此不进行限定,只需要保证各个操作方法均被遍历即可。
在对操作方法进行遍历时,针对当前遍历到的操作方法执行以下操作:
在S21中,基于第一语法树,确定当前遍历到的操作方法的被调用位置;
在S22中,在第一页面的页面源代码中查询当前遍历到的操作方法的操作数据;
在S23中,在确定出被调用位置且查询到操作数据时,确定当前遍历到的操作方法可执行。
其中,语法树中对应存储有各个操作方法的名称、参数、属性等信息,以及操作方法之间的调用关系等。如下所示,为一示例代码:
Function A(){
var Node=document.createTextNode();
String b=stringA.substring(2,6);
String c=StringA.charAt(9);
text=b+c;
function B(Node,text);
}
function B(Node,text){
Node.innerText=text;
}
其中,由上文所述可知,function B为修改页面节点的值,即为对页面节点进行修改的操作方法,则function B为一操作方法。以下,以操作方法function B为例,详细说明确定操作方法是否可执行的示例性实现方式,具体地:
首先,在遍历至function B时,根据第一语法树及页面代码确定function B的被调用位置。示例地,根据第一语法树可以确定出在执行function A时调用的function B,之后,在页面中确定function A执行的位置即为function B的被调用位置。又例如,针对示例代码para.appendChild(node){}而言,其中,appendChild(node)方法表示向节点1的子节点列表的末尾添加新的子节点2。para为被操作的节点,即节点1,node为需要操作的数据,即子节点2。在确定该appendChild(node)方法的调用位置时,由于是节点para调用该appendChild(node)方法,则将节点para的来源位置确定为该appendChild(node)方法的被调用位置。
并且,只有操作方法在页面中被调用、且其操作的数据都在第一页面中存储时,该操作方法才为可执行的操作方法,因此,在确定操作方法是否可执行时,还需要确定该操作方法的操作数据是否可以在第一页面中被查询到。具体地,可以根据操作数据的变量类型确定其类型,如,字符串类型,节点类型,文本类型等。其中,可以根据操作数据的变量名在第一页面的源代码中进行全文搜索,在搜索到该变量名后,可以校验该变量在第一页面中是否存在实参。
在一实施例中,若操作数据为节点,在查询到该节点的变量名时,可以判断该节点的来源是选择器或是页面中新创建的节点,若是选择器,则可以直接根据该节点的Xpath、css选择器等获取该节点,从而校验该节点数据是否存储在第一页面中;若是新创建的节点,则可以根据创建该节点时的父子节点的层级关系对该节点进行校验。
在另一实施例中,若操作数据为文本或是字符串等,在查询得到该变量名时,可以直接在查询到该变量名的位置处进行校验,以确定该变量是否存储在第一页面中。示例地,该种类型的变量的来源可以是:将字符串直接代码写入赋值,也可以是从某个对象的属性获取,也可以是从某个json变量中获取,本公开对此不进行限定。
在上述技术方案中,只有在页面中的可执行的操作方法才会对页面数据进行修改,而操作方法可执行时,其必须要存在对应的被调用的位置,并且该操作方法对应的操作数据需要在第一页面中存储。因此,通过上述技术方案,通过确定操作方法是否存在被调用位置、以及在第一页面中是否可以查询到其对应的操作数据,以确定操作方法是否可执行,从而可以快速确定出第一页面中的可执行的操作方法,简化操作流程,提升用户使用体验。
在S13中,根据确定出的可执行的操作方法,对第一页面中的数据进行拼接,或者生成与第一页面对应的页面数据拼接模板。
由上文所述可知,可执行的操作方法即对第一页面中的数据进行修改的方法。在一实施例中,在确定出可执行的操作方法时,可以根据该可执行的操作方法对第一页面中的数据进行拼接,从而使得第一页面在不经过浏览器加载的情况下,显示正确的数据。
在另一实施例中,基于现有互联网中页面的设计模式,同一类页面其对应的页面结构相同,例如,从同一新闻列表页面跳转的不同的新闻详情页通常对应于同一页面结构,因此,在确定出其中某一新闻详情页对应的结构时,可以根据该结构对应的页面中的各个可执行的操作方法生成页面数据拼接模板,从而在针对该类结构对应的页面时,可以直接根据该页面数据拼接模板进行页面数据拼接,从而有效简化页面数据拼接流程,便于快速获得准确的页面数据。
在上述技术方案中,通过确定页面中可执行的操作方法,从而可以根据该操作方法对第一页面中的数据进行拼接,或者生成与第一页面对应的页面数据拼接模板。因此,通过上述技术方案,可以在不经过浏览器内核加载的情况下,准确地确定出页面中的数据的正确位置,可以避免模拟浏览器内核所造成的资源占用,为正确抓取页面数据提供支持。同时,根据确定页面中可执行的操作方法进行操作,也可以有效避免页面中的其他方法,如网页渲染方法等对页面数据拼接的干扰,简化页面数据拼接的流程,提高页面数据拼接的效率,提升用户使用体验。
可选地,所述方法包括所述根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接的步骤;
其中,所述根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接,包括:
在所述可执行的操作方法的所述被调用位置处执行所述操作方法。
在该实施例中,在确定出可执行的操作方法时,通过在可执行的操作方法的被调用位置处执行该操作方法,对第一页面中的数据进行拼接。具体地,示例地,function B确定为页面中可执行的操作方法后,可以在function B的被调用位置执行function B对应的操作,即,在function B的被调用位置处,将节点Node的文本修改为变量text的值,从而在提取页面数据时,在function B的被调用位置获取的节点Node的文本为页面数据拼接后的值,从而有效避免在该位置处获取到的节点Node的文本错误或是无法获取该节点Node的文本值的问题,为页面内容提取提供准确的数据支持。
可选地,所述方法包括所述根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板的步骤;
其中,所述根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板,包括:
将所述可执行的操作方法与其被调用位置、所述操作数据的存储位置三者之间的对应关系记录在所述页面数据拼接模板中。
如上文所示,现有互联网中页面的设计模式,同一类页面其对应的页面结构相同,因此,可以根据某一结构对应的页面中的可执行的操作方法生成该类结构对应的页面的页面数据拼接模板。
在一实施例中,在确定出页面中的可执行的操作方法时,则该可执行的操作方法的被调用位置已被确定出。在查询到该可执行的操作方法的操作数据时,则可以确定该操作数据的存储位置,该存储位置即为该操作数据的来源位置。
在上述技术方案中,可以根据第一页面中的可执行的操作方法生成以页面对应的页面数据拼接模板,从而使得后续的页面在进行数据拼接时,可以直接按照该页面数据拼接模板中所记录的对应关系进行页面数据拼接,进一步简化页面数据拼接流程,降低数据的处理量,提高页面数据拼接的效率。
可选地,所述方法包括所述根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板的步骤;以及,所述方法还包括:
根据页面URL对多个页面进行分组,获得至少一个页面分组,每个页面分组具有对应的分组标识。
其中,每个页面都有其对应的URL(Uniform Resource Locator,统一资源定位符),其中,根据页面URL对多个页面进行分组,包括:
将各个页面的URL中的HTTPS和HTTP进行归一化,示例地,可以归一化为HTTP;
将带有www.前缀和不带有www.前缀的URL进行归一化,示例地,可以归一化为www.;
之后,将归一化后的URL进行分组,并为每个分组分配一个分组标识,示例地,可以按照域名、深度和URL类型进行分组,例如,将域名相同、URL深度为预设深度、且URL类型为数字的页面确定为一个页面分组,将域名相同、URL深度为预设深度、且URL类型为字符的页面确定为另一页面分组。其中,该预设深度可以根据经验进行设置,该预设深度越大,划分出的页面分组的精度越高。
针对每个页面分组,从当前页面分组中选取至少一个页面依次确定为所述第一页面;以及
在生成与所述第一页面对应的页面数据拼接模板之后,将所述第一页面所属的页面分组对应的分组标识与所述页面数据拼接模板相关联。
其中,每个页面分组中可能对应有多个页面结构,可以从其对应的多个页面结构的页面中分别选择一个页面,将该页面确定为第一页面,从而可以根据上述方法生成该第一页面对应的页面数据拼接模板。之后,可以将该第一页面的页面数据拼接模板与其所属的页面分组对应的分组标识相关联。示例地,页面分组S1中的第一页面A1,在生成第一页面A1对应的页面数据拼接模板M1之后,可以建立页面分组S1、页面数据拼接模板M1之间的对应关系,例如,将<S1,M1>形成一条记录,存储在数据库中。又例如,也可以建立页面分组S1、第一页面A1、页面数据拼接模板M1之间的对应关系,例如,将<S1,A1,M1>形成一条记录,存储在数据库中。
在上述技术方案中,对各个页面进行分组,并在页面分组中选择页面生成该页面分组对应的页面数据拼接模板。通过上述技术方案,一方面,生成每个页面分组对应的页面数据拼接模板,可以有效降低页面数据拼接模板的生成数量。另一方面,将第一页面所属的页面分组对应的分组标识与页面数据拼接模板相关联,也可以简化页面数据拼接模板的管理存储模式,也便于快速确定页面数据拼接模板,为提高页面数据拼接效率提供保障。
可选地,所述方法还包括:
获取第二页面的URL,其中,第二页面为任一待进行数据拼接的页面。
在所述至少一个页面分组中,根据获取到的所述URL确定所述第二页面对应的第一页面分组。其中,可以按照上文所述根据URL进行页面分组的方法,确定第二页面所属的分组,并将该分组确定为第一页面分组。
在与所述第一页面分组的分组标识相关联的页面数据拼接模板中,确定与所述第二页面对应的第一页面数据拼接模板。
在第一页面分组中,可能对应有多个页面数据拼接模板,可以将该第二页面与该第一页面分组中的拼接模板进行逐一匹配,在成功匹配到页面数据拼接模板时,将该页面数据拼接模板确定为第一页面数据拼接模板。示例地,可以通过将第一页面分组中的页面数据拼接模板与第二页面进行匹配,以确定与第二页面对应的第一页面数据拼接模板。例如,将第一页面分组中的各个页面数据拼接模板对第二页面中的操作数据进行匹配,若该页面数据拼接模板中的各个操作数据的存储位置都可以在第二页面中确定出实际参数,则将该页面数据拼接模板确定为第一该页面数据拼接模板。
可选地,若第二页面在第一页面分组中未成功匹配到页面数据拼接模板,可以直接根据上文所述页面数据拼接方法对第二页面的数据进行拼接。同时,也可以生成第二页面对应的页面数据拼接模板,并将该页面数据拼接模板与第一页面分组的分组标识相关联,从而可以对第一页面分组对应的页面数据拼接模板进行更新,提高页面数据拼接模板的多样性和适用性,提升用户使用体验。
基于所述第一页面数据拼接模板对所述第二页面进行页面数据拼接。
在该实施例中,在确定出第一页面数据拼接模板后,由于第一页面数据拼接模板中存储有可执行的操作方法的被调用位置,以及该操作方法对应的操作数据的存储位置,因此,可以直接在该第一页面数据拼接模板中的各个操作方法的被调用位置处,根据其操作数据执行其对应的操作,从而便可以实现对第二页面的数据的拼接。
通过上述技术方案,通过确定第二页面对应的分组,从而可以在该分组下确定第二页面对应的第一页面数据拼接模板,通过分组可以有效降低第二页面所需查找的页面数据拼接模板的数量,提高匹配效率。另外,也可以有效提高页面数据拼接的准确率和效率,提升用户使用体验。
本公开还提供一种页面数据拼接装置,如图3所示,所述装置10包括:
生成模块100,用于根据第一页面中各个操作方法的代码生成第一语法树,其中,所述操作方法为对页面内容或页面节点进行修改的方法;
第一确定模块200,用于基于所述第一语法树,确定所述各个操作方法是否可执行;
处理模块300,用于根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接,或者生成与所述第一页面对应的页面数据拼接模板。
可选地,所述第一确定模块用于按照所述第一页面的页面源代码顺序,遍历各个所述操作方法,如图4所示,所述第一确定模块200包括:
第一确定子模块201,用于基于所述第一语法树,确定所述当前遍历到的操作方法的被调用位置;
查询子模块202,用于在所述第一页面的页面源代码中查询所述当前遍历到的操作方法的操作数据;
第二确定子模块203,用于在确定出所述被调用位置且查询到所述操作数据时,确定所述当前遍历到的操作方法可执行。
可选地,所述处理模块用于根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接,包括:
在所述可执行的操作方法的所述被调用位置处执行所述操作方法。
可选地,所述处理模块用于根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板,包括:
将所述可执行的操作方法与其被调用位置、所述操作数据的存储位置三者之间的对应关系记录在所述页面数据拼接模板中。
可选地,所述处理模块用于根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板;以及,所述装置还包括:
分组模块,用于根据页面URL对多个页面进行分组,获得至少一个页面分组,每个页面分组具有对应的分组标识;
第二确定模块,用于针对每个页面分组,从当前页面分组中选取至少一个页面依次确定为所述第一页面;以及
关联模块,用于在生成与所述第一页面对应的页面数据拼接模板之后,将所述第一页面所属的页面分组对应的分组标识与所述页面数据拼接模板相关联。
可选地,所述装置还包括:
获取模块,用于获取第二页面的URL;
第三确定模块,用于在所述至少一个页面分组中,根据获取到的所述URL确定所述第二页面对应的第一页面分组;
第四确定模块,用于在与所述第一页面分组的分组标识相关联的页面数据拼接模板中,确定与所述第二页面对应的第一页面数据拼接模板;
拼接模块,用于基于所述第一页面数据拼接模板对所述第二页面进行页面数据拼接。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种电子设备700的框图。如图5所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的页面数据拼接方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的页面数据拼接方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的页面数据拼接方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的页面数据拼接方法。
图6是根据一示例性实施例示出的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图6,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的页面数据拼接方法。
另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的页面数据拼接方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的页面数据拼接方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种页面数据拼接方法,其特征在于,所述方法包括:
根据第一页面中各个操作方法的代码生成第一语法树,其中,所述操作方法为对页面内容或页面节点进行修改的方法;
基于所述第一语法树,确定所述各个操作方法是否可执行;
根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接,或者生成与所述第一页面对应的页面数据拼接模板。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一语法树,确定所述各个操作方法是否可执行,包括:
按照所述第一页面的页面源代码顺序,遍历各个所述操作方法,并针对当前遍历到的操作方法执行以下操作:
基于所述第一语法树,确定所述当前遍历到的操作方法的被调用位置;
在所述第一页面的页面源代码中查询所述当前遍历到的操作方法的操作数据;
在确定出所述被调用位置且查询到所述操作数据时,确定所述当前遍历到的操作方法可执行。
3.根据权利要求2所述的方法,其特征在于,所述方法包括所述根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接的步骤;
其中,所述根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接,包括:
在所述可执行的操作方法的所述被调用位置处执行所述操作方法。
4.根据权利要求2所述的方法,其特征在于,所述方法包括所述根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板的步骤;
其中,所述根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板,包括:
将所述可执行的操作方法与其被调用位置、所述操作数据的存储位置三者之间的对应关系记录在所述页面数据拼接模板中。
5.根据权利要求1所述的方法,其特征在于,所述方法包括所述根据确定出的可执行的操作方法,生成与所述第一页面对应的页面数据拼接模板的步骤;以及,所述方法还包括:
根据页面URL对多个页面进行分组,获得至少一个页面分组,每个页面分组具有对应的分组标识;
针对每个页面分组,从当前页面分组中选取至少一个页面依次确定为所述第一页面;以及
在生成与所述第一页面对应的页面数据拼接模板之后,将所述第一页面所属的页面分组对应的分组标识与所述页面数据拼接模板相关联。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取第二页面的URL;
在所述至少一个页面分组中,根据获取到的所述URL确定所述第二页面对应的第一页面分组;
在与所述第一页面分组的分组标识相关联的页面数据拼接模板中,确定与所述第二页面对应的第一页面数据拼接模板;
基于所述第一页面数据拼接模板对所述第二页面进行页面数据拼接。
7.一种页面数据拼接装置,其特征在于,所述装置包括:
生成模块,用于根据第一页面中各个操作方法的代码生成第一语法树,其中,所述操作方法为对页面内容或页面节点进行修改的方法;
第一确定模块,用于基于所述第一语法树,确定所述各个操作方法是否可执行;
处理模块,用于根据确定出的可执行的操作方法,对所述第一页面中的数据进行拼接,或者生成与所述第一页面对应的页面数据拼接模板。
8.根据权利要求7所述的装置,其特征在于,所述第一确定模块用于按照所述第一页面的页面源代码顺序,遍历各个所述操作方法,包括:
第一确定子模块,用于基于所述第一语法树,确定所述当前遍历到的操作方法的被调用位置;
查询子模块,用于在所述第一页面的页面源代码中查询所述当前遍历到的操作方法的操作数据;
第二确定子模块,用于在确定出所述被调用位置且查询到所述操作数据时,确定所述当前遍历到的操作方法可执行。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811314401.9A CN109635175B (zh) | 2018-11-06 | 2018-11-06 | 页面数据拼接方法、装置、可读存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811314401.9A CN109635175B (zh) | 2018-11-06 | 2018-11-06 | 页面数据拼接方法、装置、可读存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109635175A true CN109635175A (zh) | 2019-04-16 |
CN109635175B CN109635175B (zh) | 2021-12-31 |
Family
ID=66067285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811314401.9A Active CN109635175B (zh) | 2018-11-06 | 2018-11-06 | 页面数据拼接方法、装置、可读存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109635175B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797351A (zh) * | 2020-06-29 | 2020-10-20 | 平安普惠企业管理有限公司 | 页面数据管理方法、装置、电子设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770502A (zh) * | 2009-12-30 | 2010-07-07 | 深圳市同洲电子股份有限公司 | 一种脚本处理的方法、装置和嵌入式浏览器 |
CN106650437A (zh) * | 2016-12-29 | 2017-05-10 | 广州华多网络科技有限公司 | webshell检测方法和装置 |
US20170293477A1 (en) * | 2014-10-14 | 2017-10-12 | Nippon Telegraph And Telephone Corporation | Analysis device, analysis method, and analysis program |
CN107766344A (zh) * | 2016-08-15 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 一种模板渲染的方法、装置及浏览器 |
CN107798001A (zh) * | 2016-08-29 | 2018-03-13 | 阿里巴巴集团控股有限公司 | 网页处理方法、装置及设备 |
-
2018
- 2018-11-06 CN CN201811314401.9A patent/CN109635175B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770502A (zh) * | 2009-12-30 | 2010-07-07 | 深圳市同洲电子股份有限公司 | 一种脚本处理的方法、装置和嵌入式浏览器 |
US20170293477A1 (en) * | 2014-10-14 | 2017-10-12 | Nippon Telegraph And Telephone Corporation | Analysis device, analysis method, and analysis program |
CN107766344A (zh) * | 2016-08-15 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 一种模板渲染的方法、装置及浏览器 |
CN107798001A (zh) * | 2016-08-29 | 2018-03-13 | 阿里巴巴集团控股有限公司 | 网页处理方法、装置及设备 |
CN106650437A (zh) * | 2016-12-29 | 2017-05-10 | 广州华多网络科技有限公司 | webshell检测方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797351A (zh) * | 2020-06-29 | 2020-10-20 | 平安普惠企业管理有限公司 | 页面数据管理方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109635175B (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6818693B2 (ja) | アプリケーションページクイックアクセス | |
CN105335137B (zh) | 用于处理源文件的方法和装置 | |
KR102154757B1 (ko) | 콜경로 파인더 | |
CN109065054A (zh) | 语音识别纠错方法、装置、电子设备及可读存储介质 | |
CN108549538A (zh) | 一种代码检测方法、装置、存储介质及测试终端 | |
CN103873318A (zh) | 一种网站自动化测试方法及自动化测试系统 | |
CN106886445A (zh) | Java数据包生成方法及设备和信息提取方法及设备 | |
CN104423961A (zh) | 一种生成测试脚本的方法及系统 | |
CN106201562A (zh) | 一种页面切换方法及装置 | |
CN106776266B (zh) | 测试工具的配置方法及终端设备 | |
CN109582886A (zh) | 页面内容提取方法、模板的生成方法及装置、介质及设备 | |
CN105095525A (zh) | 获取网页页面数据的方法及装置 | |
CN106201865A (zh) | 一种应用程序编程接口api测试方法、装置及终端设备 | |
CA2897480A1 (en) | Systems and methods for semantic url handling | |
JP2021002326A (ja) | ソフトウェアプログラムにおける静的分析違反の修復パターンの精緻化 | |
CN103646039A (zh) | 一种网页搜索方法及装置 | |
CN107066240A (zh) | 组件功能的实现方法和装置 | |
CN109635175A (zh) | 页面数据拼接方法、装置、可读存储介质和电子设备 | |
CN109542404A (zh) | 页面组件化的构建方法、装置、存储介质及电子设备 | |
CN105354490A (zh) | 一种处理被劫持浏览器的方法及设备 | |
CN107861779A (zh) | 页面对象定位方法及装置、存储介质、电子设备 | |
US9773114B2 (en) | Method for analysing program code of electronic device and electronic device | |
CN109697234A (zh) | 实体的多属性信息存储、查询方法、装置、服务器和介质 | |
CN103778181A (zh) | 浏览器收藏夹中图标的导入方法及装置 | |
CN109783133B (zh) | 代码打包方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |