CN102651019A - 一种标记文件解析方法和装置 - Google Patents

一种标记文件解析方法和装置 Download PDF

Info

Publication number
CN102651019A
CN102651019A CN2012100913114A CN201210091311A CN102651019A CN 102651019 A CN102651019 A CN 102651019A CN 2012100913114 A CN2012100913114 A CN 2012100913114A CN 201210091311 A CN201210091311 A CN 201210091311A CN 102651019 A CN102651019 A CN 102651019A
Authority
CN
China
Prior art keywords
label
current group
input frame
packet
tab file
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
CN2012100913114A
Other languages
English (en)
Other versions
CN102651019B (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 Qihoo Technology Co Ltd
Original Assignee
Qizhi Software Beijing 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 Qizhi Software Beijing Co Ltd filed Critical Qizhi Software Beijing Co Ltd
Priority to CN2012100913114A priority Critical patent/CN102651019B/zh
Priority to CN201310548150.1A priority patent/CN103577578B/zh
Priority to CN201310547761.4A priority patent/CN103714117B/zh
Publication of CN102651019A publication Critical patent/CN102651019A/zh
Application granted granted Critical
Publication of CN102651019B publication Critical patent/CN102651019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种标记文件解析方法和装置,用以解决现有技术中对标记文件解析成功率低的问题。本申请通过获取标记文件中的标签对象生成标签集合;根据所述标签集合中标签对象的公共属性对所述标签对象进行分组;从所述分组的结果获得一个或多个分组标签;依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性;从相匹配的分组标签中获取标记文件解析用的数据。对标签对象按其公共属性进行分组,使得标记文件中原本无序的标签对象之间建立了关联,非常有利于做进一步的匹配分析,有效提高了标记文件的解析成功率。

Description

一种标记文件解析方法和装置
技术领域
本申请涉及数据解析技术领域,特别是涉及一种标记文件解析方法和装置。
背景技术
目前互联网技术已经深入影响人们的生活,诸如电子邮箱、论坛、网页游戏等也已成为人们日常工作和娱乐中不可或缺的一部分。但上述互联网应用大多需要用户注册并登录后才能使用,因此用户需要记忆大量的用户名和密码。为了帐号的安全,用户通常还需要设置较为复杂的数字、字母、特殊符号组合的密码,进一步加大了记忆的难度,在每次登录时还需要手工输入,这一切无疑对用户的使用造成了负担。网页自动填表就是解决这一问题的技术,它可以在保存用户在网页中输入的用户名和密码,在下一次用户打开相同网页时,自动帮用户填写已保存的用户名和密码,用户不必再记忆和填写大量的用户名和密码,使用各种网络资源和服务更加轻松随意。
自动填表这项技术中的关键在于能够预先检测并判断页面中是否存在用户需要填写并提交的表单,是登录表单?还是注册表单?首先要能识别这些表单,然后才可以实现后续的保存、帮助用户填写的步骤。
目前,现有识别网页表单的技术一般包括以下步骤:
首先,获取网页中的表单。通过识别网页对应的超文本代码(HTML,HyperText Markup Language)中是否存在<form>标签,若存在,就将该<form>标签内所有<input>输入框作为一个表单。参见下面的一个<form>表单的示例代码:
Figure BDA0000148900790000011
其次,识别所获表单的类型,确定该表单是否为需要自动填表的对象。其关键是要能识别该表单是否是登录表单。具体的,通过判断该表单中输入框<input>的类型type为密码框password的输入框个数来判断该表单是否是登录表单。若该表单中密码输入框个数为1则认为该表单为登录表单。
最后,对识别出的登录表单实施自动填写等相关操作。
可以看出,以上现有表单识别过程中首先要找到网页中的<form>标签,将该<form>标签内的输入框作为一个表单后才能实施后续进一步的分析。但由于目前很多页面中并不是所有表单实现都使用<form>标签,而是存在多种实现表单的方式,如在<div>标签中实现含有输入框的表单,其HTML参考代码如下:
Figure BDA0000148900790000021
面对这种大量存在的缺少<form>标签的表单,基于现有技术的表单识别方法就会失败,造成识别成功率非常低。据统计,上述现有技术表单识别成功率只有40%左右。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够提高现有网页表单识别技术中因网页中缺失<form>标签而导致的识别失败,识别成功率低的问题。
发明内容
本申请所要解决的技术问题是提供一种标记文件解析方法和装置,以便有效解决现有技术解析HTML网页时成功率低的问题。
为了解决上述问题,本申请公开了一种标记文件解析方法,包括:
获取标记文件中的标签对象,生成标签集合;
根据所述标签集合中标签对象的公共属性,对所述标签对象进行分组,从所述分组的结果获得一个或多个分组标签;
依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性;
从相匹配的分组标签中,获取标记文件解析用的数据。
优选的,根据所述标签集合中标签对象的公共属性对所述标签对象进行分组,包括:
将标签集合中具有相同父节点的标签对象置于同一分组标签内。
优选的,所述从所述分组的结果获得一个或多个分组标签之后还包括分组标签再分组,包括:
判断当前分组结果中一个或多个分组标签;若当前分组标签包含两个或多个标签对象,且所述两个或多个标签对象不具有相同的父节点,则将当前分组标签内具有相同父节点的标签对象置于另一分组标签内;重复上述步骤直到当前分组标签不可再分组。
优选的,所述标记文件是超文本标记HTML文件。
优选的,所述标签对象是<input>输入框;
所述依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性还包括:
若当前分组标签中仅含有1个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象不是文本输入框,则当前分组标签为登录表单。
优选的,若当前分组标签为登录表单,且当前分组标签内密码输入框存在多级父节点,且当前分组标签不可再分,且所述密码输入框的最近父节点内包括至少一个文本输入框,则将所述密码输入框最近父节点内的标签对象置于新的分组标签内。
优选的,所述依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性还包括:
若当前分组标签中仅含有1个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象是文本输入框,则当前分组标签为注册表单。
优选的,所述依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性还包括:
若当前分组标签中包含2个位置连续的且互为兄弟节点的密码输入框,则当前分组标签为注册表单。
优选的,所述依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性还包括:
若当前分组标签中包含3个位置连续且互为兄弟节点的密码输入框,则当前分组标签为密码修改表单。
优选的,在按预定规则对所述一个或多个分组标签进行解析之前还包括:
为解决上述问题,本申请还公开了一种网页填充方法,包括:标记文件解析;目标数据存储;目标数据填充;
所述标记文件解析包括:
获取标记文件中的标签对象,生成标签集合;
根据所述标签集合中标签对象的公共属性,对所述标签对象进行分组,从所述分组的结果获得一个或多个分组标签;
依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性;
相匹配的分组标签为目标输入项;
所述目标数据存储包括:
从所述目标输入项中获取目标数据并存储在配置信息中;
所述目标数据填充包括:
从配置信息中获取目标数据并填充在所述标记文件对应的目标输入项中。
为解决上述问题,本申请还公开了一种标记文件解析装置,包括:
获取模块,用于获取标记文件中的标签对象;
集合生成模块,用于将所述获取模块得到的标签对象生成标签集合;
分组模块,用于根据所述标签集合中标签对象的公共属性对所述标签对象进行分组;
分组标签获取模块,用于获取所述分组模块生成的一个或多个分组标签;
解析模块,用于依据预置的标记文件解析映射表,匹配所述分组标签获取模块所获取的一个或多个分组标签中的标签对象的属性;从相匹配的分组标签中获取标记文件解析用的数据。
优选的,所述分组模块还包括:
第一分组单元,用于将标签集合中具有相同父节点的标签对象置于同一分组标签内。
优选的,所述分组模块还包括:
第二分组单元,用于判断若当前分组标签包含两个或多个标签对象,且所述两个或多个标签对象不具有相同的父节点,则将当前分组标签内具有相同父节点的标签对象置于另一分组标签内;第二分组单元重复执行操作直到当前分组标签不可再分组。
优选的,所述标记文件是超文本标记HTML文件。
优选的,所述获取模块所获取的标签对象是<input>输入框。
优选的,所述解析模块还包括:
登录表单识别单元用于判断若当前分组标签中仅含有1个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象不是文本输入框,则当前分组标签为登录表单。
优选的,所述解析模块还包括:
第一注册表单识别单元,用于判断若当前分组标签中仅含有1个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象是文本输入框,则当前分组标签为注册表单。
优选的,所述解析模块还包括:
第二注册表单识别单元,用于判断若当前分组标签中包含2个位置连续的且互为兄弟节点的密码输入框,则当前分组标签为注册表单。
优选的,所述解析模块还包括:
密码修改表单识别单元,用于判断若当前分组标签中包含3个位置连续且互为兄弟节点的密码输入框,则当前分组标签为密码修改表单。
与现有技术相比,本申请具有以下优点:
现有技术在识别HTML网页文件时需要先找到<form>标签,然后查找该<form>标签旗下的<input>输入框,但由于存在大量缺少<form>标签的HTML网页文件,因此使用现有的文件识别技术就会因为无法找到<form>标签而无法获取<input>输入框,这样一来造成对互联网中众多HTML网页文件的解析失败,解析成功率低下。为此,我们提出对整个HTML网页文件中的<input>标签进行查找获取,同时对所获得<input>标签集合按每个<input>标签所具有的公共属性进行分组,让原本没有明显联系的<input>标签按其共有属性关联在一起组成一个或多个分组标签,由于同一分组标签内的<input>具有相同的公共属性,非常便于做进一步分析使用。在此过程中,完全不用考虑<input>标签在HTML网页文件中的位置和表现方式,对于没有<form>标签的网页文件,仍可成功进行解析,极大地提高了对HTML网页文件解析的成功率。据统计,可将对网页文件解析的成功率从现有技术的40%提高到90%左右。
附图说明
图1是本申请一种标记文件解析方法一实施例的流程示意图;
图2是本申请一种标记文件解析方法另一实施例的流程示意图;
图3是一个HTML网页文件标签分布示意图;
图4是本申请一种标记文件解析装置一实施例的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
目前,使用标记语言描述或存储数据已成为当前最重要的数据表现和存储方式,如HTML、HTML5、可扩展超文本标记语言(eXtensible HyperTextMarkup Language,XHTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等,这类标记语言一个最主要的特点就是都使用一套标记标签(markup tag)组织或存储数据。以下本申请所述的标记文件就是指以标记标签组织数据的文件。
参照图1,示出了本申请一种标记文件解析方法的流程示意图,具体如下:
步骤101,获取标记文件中的标签对象生成标签集合。
标记文件就是待解析的以标记标签组织或存储数据的文件。根据数据存储和表现的需要,某一特定的标签在一个标记文件中可能会多次出现,如当一个网页中需要出现多个链接,则该网页对应的标记文件中用于标记链接的标签<a></a>就会按一定格式多次出现:
<a href=http://www.google.com name=“google”>这是一个链接</a>
<a href=http://www.360.com name=“360”>这是一个链接</a>
若需要对标签对象组织的数据进行解析时,就从该标记文件中查找标签对象生成标签集合。
需要说明的是,一个标记文件通常是由各种不同的标签来组织相应的数据,例如<lable>、<table>、<form>、<input>等。所谓标签对象就是一个标签在标记文件中的对象实例,如上述标签<a>在一个网页中出现了2次,那么若对该网页获取标签<a>的标签对象就会得到标签<a>所对应的两个对象实例:
<a href=http://www.google.com name=“google”>这是一个链接</a>
<a href=http://www.360.com name=“360”>这是一个链接</a>
另外,本文所描述的从标记文件中获取标签对象通常也是指获取某一类或几类特定标签的标签对象,其具体获取哪类标签可由本领域技术人员在实施本申请时依据标记文件分析目的决定,本申请对此没有限制。
优选的,所述获取标记文件中的标签对象是对标记文件进行全文查找获取某类标签的全部标签对象,以便避免遗漏,提高解析的准确性。
步骤102,根据所述标签集合中标签对象的公共属性对所述标签对象进行分组。
可根据不同标记文件的类型,或本次文件解析目的,选择标签对象的不同公共属性,并依据该公共属性对标记文件实施分组。所谓标签对象的公共属性即是指标签对象所共有的属性信息,例如标签对象所处的位置、标签类型、长度等。
步骤103,获得一个或多个分组标签。
根据上述步骤中的分组结果获得一个或多个分组标签。
步骤104,依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性,从相匹配的分组标签中获取标记文件解析用的数据。
标记文件解析映射表预先存储了匹配分组标签所需的信息。本领域技术人员容易理解,具体的解析映射表内容可根据本次解析目的、标记文件类型等影响因素进行组织设定,如HTML、XML不同类型的标记文件,或同类型标记文件对不同标签进行解析时可对应不同的解析映射表。
现有技术中当需要对一个标记文件中某标签的标签对象内容进行解析时,会直接查找到该标签,然后逐一分析。这种分析方法的最大问题就是待解析数据中的杂质太多,严重影响识别的成功率。因为同一类标签在一个标记文件中可能存在多种描述方式,如<input>标签,其可以位于<form>标签内,也可以位于<form>标签外,或者根本不使用<form>标签。基于这一情况,如果查找整个标记文件中的<input>标签,由于无法获知多个<input>标签之间的关系只能将所有<input>标签作为同一组标签进行分析,这样势必会带入很多不相关的内容导致杂质太多,而如果仅仅考虑<form>标签内的<input>又可能会因为找不到<form>标签而无法获得有效的<input>标签,造成识别成功率低下。
针对上述问题,本申请提出:对从标记文件中获取的标签集合,按标签集合中标签对象的公共属性对标签集合中的标签对象进行分组获得分组标签,之后再对所获得一个或多个分组标签进行解析获得对整个标记文件的解析结果。由于同一分组内标签对象都具有相同的公共属性,各标签对象相互之间也具备了关联性,便于实施进一步分析,而不像现有技术中各标签处于无序状态;同时,由于不用考虑不同标记文件中标签对象的不同表现形式,因而提高了文件解析的适用性和成功率。
参照图2,示出了本申请一种标记文件解析方法的流程示意图,具体如下:
步骤201,获取标记文件中的全部标签对象生成标签集合。
步骤202,对标签集合中的标签对象进行分组,具体包括:将具有相同父节点的标签对象置为同一分组标签。
本例中,具有相同的父节点是对标签集合中各标签对象进行分组所依据的共同公共属性。由于本次解析目的是希望对位置上有关联的标签进行分析,因此使用相同父节点作为分组依据。具体的,首先计算各标签对象的节点路径,然后将拥有相同父节点的标签对象设置于同一个分组标签内。
步骤203,使用递归操作完成对相同父节点内各标签对象的再分组,具体包括:
判断当前分组结果中一个或多个分组标签,若当前分组标签包含两个或多个标签对象,且所述两个或多个标签对象不具有相同的父节点,则将当前分组标签内具有相同父节点的标签置于另一分组标签内;重复上述步骤直到当前分组标签不可再分组。
用代码描述上述过程示例如下:
Figure BDA0000148900790000091
Figure BDA0000148900790000101
步骤203,根据分组结果获得一个或多个分组标签。
步骤204,对分组结果中的一个或多个分组标签进行解析。
依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性;从相匹配的分组标签中获取标记文件解析用的数据。
以上对本申请提出的一种标记文件解析方法做了概括描述,下面以解析HTML网页文件为例,对HTML网页文件中涉及的<input>输入框进行解析识别过程进行详细说明。本实施例对HTML网页解析的目的是为了识别网页中的用户登录表单,识别出的登录表单常被用于为网页自动填表操作提供支持。
参见图3,示出了一个待解析的HTML网页文件中<input>输入框的分布示意图,具体的解析过程描述如下:
如图3所示的HTML网页文件中有8个<input>输入框,其分别为text0、text1、password1、text2、password2、text3、password3、text4。这里的text意思是该<input>的类型为文本输入框,password的意思是该<input>类型为密码输入框。输入框下方示出的<input>代码为该输入框在HTML文件中对应的源码。
S1,从HTML网页文件中获取全部的<input>输入框。
获取的结果是得到一个包括8个<input>输入框的<input>集合,如:
{text0、text1、password1、text2、password2、text3、password3、text4}。
S2,对<input>输入框集合进行分组。
分组原则:将具有相同父节点的<input>置于同一个<input>组内。
初次分组结果:
属于父节点A的分组标签group0(text0,text1,password1);
属于父节点C的分组标签group2(text2,password2,password3,text3,text4)
初次分组结果可以是两类:不可再分组或可再分组,其分别满足以下条件:
不可再分组:满足以下a、b两个条件:
a.组内没有password;
b.组内只有1个password(认为连续的N个password也算1个)
可再分组:组内有不连续的多个password,比如(text1,password1,text2,password2)
S3,若分组结果包含可再分组则继续分组。
从分组结果group0和group2按上述条件判断是否为可再分组,若是可再分组,则依据上述分组规则对该分组标签进行再次分组;之后重复步骤S3直到分组结果不再可分。具体判断方法为:对分组结果中的分组标签,判断当前分组标签,若当前分组标签包含两个或多个标签对象,且所述两个或多个标签对象不具有相同的父节点,则将当前分组标签内具有相同父节点的标签对象置于另一分组标签内。
S4,删除分组标签内多余的<text>标签。
如果当前分组标签为登录表单,且不可再分,且分组标签内<text>输入框的个数大于1个,则删除多余的<text>标签,例如分组标签group0(text0,text1,password1)。具体方法包括:
首先,查找分组标签group0中<password>输入框的最近父节点。
根据节点路径找到<password>输入框的最近父节点B,判断父节点B中是否存在<text>输入框,若存在,则将父节点B中的<text>和<password>的标签作为一个新的标签分组。
如图3所示,分组标签group0中<password1>有两个父节点,分别是父节点A、父节点B,并且group0中只有一个<password1>输入框不可再分。查找<password1>的最近父节点B,该父节点B中有<text1>输入框,因此,将父节点B中的<text>和<password>作为一个新的分组标签group1(text1,password1)。
S5,解析分组结果。
根据解析映射表中预存的匹配关系进行解析,包括:
根据各分组标签group中类型为password的<input>个数,以及与text的关联及位置关系确定表单类型:
1)登录表单:若当前分组标签group中仅含有1个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象不是文本输入框,则当前分组标签为登录表单。也就是说,若当前分组标签group中只有1个password且后面没有text,则当前分组标签group是登陆表单。
2)注册表单:若当前分组标签中仅含有1个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象是文本输入框,则当前分组标签为注册表单。也就是说,若当前分组标签group中只有1个password但后面有text的,则当前分组标签group是注册表单
3)注册表单:若当前分组标签中包含2个位置连续的且互为兄弟节点的密码输入框,则当前分组标签为注册表单。也就是说,若当前group中有2个password(肯定是连续的,不连续就可以再分了),则当前分组标签group是注册表单
4)修改密码表单:若当前分组标签中包含3个位置连续且互为兄弟节点的密码输入框,则当前分组标签为密码修改表单。也就是说,若当前分组标签group中有3个password,则当前分组标签group是修改密码表单。
S5,确定登录表单的用户名。
对登录表单group,我们认为password上面的text就是用户名。这样一来,可明确登录表单text和password的对应关系,并用于后续的自动填表或其他操作。
在现有技术中若要识别网页文件中的登录表单,是要先找到网页中的<form>标签后才能进一步查找该<form>标签内部的<input>输入框,并将查找到的<input>结果作为1个表单然后判断该表单是否为登录表单。但由于存在位于<form>外部的<input>输入框,造成现有技术无法识别该类网页文件。为消除上述问题,现有技术利用人工参与分析的方式识别登录表单。而本申请提出的登录表单识别方法无需考虑网页中是否存在<form>,在无需任何人工干预的情况下即可将登录表单识别成功率从原有的40%提高到90%。
以上通过几个实施例对本申请一种标记文件解析方法进行了描述,为了便于本领域技术人员更好的理解本申请的实施过程,下面结合具体的C++示例代码对本申请的一种标记文件解析方法做进一步详细描述,其具体过程为:
首先,查找目标网页中所有的<input>输入框生成<input>标签集合。具体的,通过调用查找表单类CFormFinder中的方法来实现;
然后,对查找出的<input>输入框进行分组。具体的,计算出<input>标签集合中各<input>对象的路径,将有相同父节点的<input>对象进行分组;具体的,通过递归调用<input>输入框分组类CInputGroup中定义的DivideIntoGroups()方法来实现;
最后,对分组<input>输入框判断是否为登录表单、注册表单、密码修改表单;具体的,通过调用CInputGroup类中的方法实现。
下面给出部分参考示例代码:
下文所使用的bstrType是当前<input>对象type属性的值。根据HTML协议规定,<input>的type的值包括以下几种:button、checkbox、file、hidden、image、password、radio、reset、submit、text。
识别<input>对象类型就是要识别出type值为文本输入框text、密码输入框password、提交按钮submit的情况,具体识别方法包括:
若bstrType值为”password”,则<input>为密码输入框;
若bstrType值为”text”,则<input>为文本输入框;进一步判断是否为用户名输入框:如果属性name值中包含“用户名”、“账户”、“登录名”、“登录账号”或属性id值包含“userid”,则认为该输入框为用户名输入框;
若bstrType值为“sumbit”,则<input>为提交按钮。
CInputItem类,表示一个input对象,它提供了一些方法,用于判断input对象是否为密码框、文本框、用户名框等。
CFormFinder类,用于查找表单,该类中实现了如下的重要方法:
方法1,从Browser中查找表单。
方法2,从Document中查找表单。
方法3,从Collection中查找表单。该方法在输入框集合中查找表单,调用下述CInputGroup类中的DivideIntoGroups方法,对输入框进行分组并确定是否为表单的方法。
CInputGroup类,表示了输入框的分组,分在同一个组内的都是具有相同父节点的输入框。在CInputGroup中实现的重要方法如下所示:
(1)初始化函数,对当前分组标签进行识别定位,确定该组类型,如废弃的组?可以拆分的组?登录表单?注册表单?
该初始化函数的伪码表示如下:
Figure BDA0000148900790000141
Figure BDA0000148900790000151
(2)判断分组是否是登录表单
IsCanDivide(),用来分组的函数,采用递归调用的方式。
DivideIntoGroups(),对输入框进行分组并确定是否为表单,该方法中的部分伪码如下:
Figure BDA0000148900790000152
以上通过具体实施例对本申请一种标记文件解析方法做了详细描述。下面参照上述各实施例内容,对本申请一种网页填充方法进行描述,其具体包括:
网页自动填充就是当用户需要在网页上输入账户、密码登录网站时,系统可自动将该用户之前输入的账户、密码信息自动显示在网页文件对应的输入框中,以达到方便用户操作的目的。
为达到上述目的,本申请的一种网页填充方法需要至少包括:标记文件解析;目标数据存储;目标数据填充;
所述标记文件解析包括:
获取标记文件中的标签对象,生成标签集合;
根据所述标签集合中标签对象的公共属性对所述标签对象进行分组,从所述分组的结果获得一个或多个分组标签;
依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性;
相匹配的分组标签为目标输入项;
所述目标数据存储包括:
从所述目标输入项中获取目标数据并存储在配置信息中;
所述目标数据填充包括:
从配置信息中获取目标数据并填充在所述标记文件对应的目标输入项中。
进一步的,标记文件是HTML网页文件,标签对象是<input>。
若HTML网页文件解析后获取的目标输入项是用户登录表单,该登录表单包含用户名输入框、密码输入框,那么在用户填写登录表单并向服务器提交登录请求后记录并将登录表单中的用户名、密码信息存储在客户端的cookie文件中。
当HTML网页文件被再次请求显示在浏览器的时候,从客户端cookie文件中提取与当前HTML网页文件登录表单对应的用户名、密码信息并显示于HTML网页中登录表单对应的位置。
以上为本申请一种网页填充方法一实施例的简单描述,更多相关内容请参照上述各实施例对应的部分,此处不再赘述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。
参见图4,示出了本申请一种标记文件解析装置一实施例的结构示意图,所述装置具体包括:
获取模块410,用于获取标记文件中的标签对象;
集合生成模块420,用于将所述获取模块410得到的标签对象生成标签集合;
分组模块430,用于对集合生成模块420所生成的标签集合按所述标签集合中标签对象的公共属性进行分组;
分组标签获取模块440,用于获取所述分组模块430生成的一个或多个分组标签;
标记文件解析映射表460,用于预先存储标记文件的解析映射信息;
解析模块450,用于依据所述标记文件解析映射表460,匹配所述分组标签获取模块440所获取的一个或多个分组标签中标签对象的属性;从相匹配的分组标签中获取标记文件解析用的数据。
优选的,所述分组模块430还包括:
第一分组单元431,用于将标签集合中具有相同父节点的标签对象置于同一分组标签内。
优选的,所述分组模块430还包括:
第二分组单元432用于判断若当前分组标签包含两个或多个标签对象,且所述两个或多个标签对象不具有相同的父节点,则将当前分组标签内具有相同父节点的标签置于另一分组标签内;第二分组单元重复执行操作直到当前分组标签不可再分。
优选的,所述标记文件是超文本标记HTML文件。
优选的,所述获取模块410所获取的标签对象是<input>输入框;
优选的,所述解析模块450还包括:
登录表单识别单元451,用于判断若当前分组标签中仅含有1个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象不是文本输入框,则当前分组标签为登录表单。
优选的,所述解析模块450还包括:
第一注册表单识别单元452,用于判断若当前分组标签中仅含有1个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象是文本输入框,则当前分组标签为注册表单。
优选的,所述解析模块450还包括:
第二注册表单识别单元453,用于判断若当前分组标签中包含2个位置连续的且互为兄弟节点的密码输入框,则当前分组标签为注册表单。
优选的,所述解析模块450还包括:
密码修改表单识别单元454,用于判断若当前分组标签中包含3个位置连续且互为兄弟节点的密码输入框,则当前分组标签为密码修改表单。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上对本申请所提供的一种标记文件解析方法和装置,以及一种网页填充方法,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (19)

1.一种标记文件解析方法,其特征在于,包括:
获取标记文件中的标签对象,生成标签集合;
根据所述标签集合中标签对象的公共属性,对所述标签对象进行分组,从所述分组的结果获得一个或多个分组标签;
依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性;
从相匹配的分组标签中,获取标记文件解析用的数据。
2.如权利要求1所述的方法,其特征在于,根据所述标签集合中标签对象的公共属性对所述标签对象进行分组,包括:
将标签集合中具有相同父节点的标签对象置于同一分组标签内。
3.如权利要求2所述的方法,其特征在于,所述从所述分组的结果获得一个或多个分组标签之后还包括分组标签再分组,包括:
判断当前分组结果中一个或多个分组标签;
若当前分组标签包含两个或多个标签对象,且所述两个或多个标签对象不具有相同的父节点,则将当前分组标签内具有相同父节点的标签对象置于另一分组标签内;
重复上述步骤直到当前分组标签不可再分组。
4.如权利要求1所述的方法,其特征在于,所述标记文件是超文本标记HTML文件。
5.如权利要求1所述的方法,其特征在于,所述标签对象是<input>输入框;
所述依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性还包括:
若当前分组标签中仅含有1个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象不是文本输入框,则当前分组标签为登录表单。
6.如权利要求5所述的方法,其特征在于,还包括:
若当前分组标签为登录表单,且当前分组标签内密码输入框存在多级父节点,且当前分组标签不可再分,且所述密码输入框的最近父节点内包括至少一个文本输入框,则将所述密码输入框最近父节点内的标签对象置于新的分组标签内。
7.如权利要求5所述的方法,其特征在于,所述依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性还包括:
若当前分组标签中仅含有1个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象是文本输入框,则当前分组标签为注册表单。
8.如权利要求7所述的方法,其特征在于,所述依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性还包括:
若当前分组标签中包含2个位置连续的且互为兄弟节点的密码输入框,则当前分组标签为注册表单。
9.如权利要求8所述的方法,其特征在于,所述依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性还包括:
若当前分组标签中包含3个位置连续且互为兄弟节点的密码输入框,则当前分组标签为密码修改表单。
10.一种网页填充方法,其特征在于,包括:标记文件解析;目标数据存储;目标数据填充;
所述标记文件解析包括:
获取标记文件中的标签对象,生成标签集合;
根据所述标签集合中标签对象的公共属性,对所述标签对象进行分组,从所述分组的结果获得一个或多个分组标签;
依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性;
相匹配的分组标签为目标输入项;
所述目标数据存储包括:
从所述目标输入项中获取目标数据并存储在配置信息中;
所述目标数据填充包括:
从配置信息中获取目标数据并填充在所述标记文件对应的目标输入项中。
11.一种标记文件解析装置,其特征在于,包括:
获取模块,用于获取标记文件中的标签对象;
集合生成模块,用于将所述获取模块得到的标签对象生成标签集合;
分组模块,用于根据所述标签集合中标签对象的公共属性对所述标签对象进行分组;
分组标签获取模块,用于获取所述分组模块生成的一个或多个分组标签:
标记文件解析映射表,用于预先存储标记文件的解析映射信息;
解析模块,用于依据标记文件解析映射表,匹配所述分组标签获取模块所获取的一个或多个分组标签中的标签对象的属性;从相匹配的分组标签中获取标记文件解析用的数据。
12.如权利要求11所述的装置,其特征在于,所述分组模块还包括:
第一分组单元,用于将标签集合中具有相同父节点的标签对象置于同一分组标签内。
13.如权利要求12所述的装置,其特征在于,所述分组模块还包括:
第二分组单元,用于判断若当前分组标签包含两个或多个标签对象,且所述两个或多个标签对象不具有相同的父节点,则将当前分组标签内具有相同父节点的标签对象置于另一分组标签内;第二分组单元重复执行操作直到当前分组标签不可再分组。
14.如权利要求11所述的装置,其特征在于,所述标记文件是超文本标记HTML文件。
15.如权利要求12所述的装置,其特征在于,所述获取模块所获取的标签对象是<input>输入框。
16.如权利要求15所述的装置,其特征在于,所述解析模块还包括:
登录表单识别单元用于判断若当前分组标签中仅含有1个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象不是文本输入框,则当前分组标签为登录表单。
17.如权利要求15所述的装置,其特征在于,所述解析模块还包括:
第一注册表单识别单元,用于判断若当前分组标签中仅含有1个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象是文本输入框,则当前分组标签为注册表单。
18.如权利要求15所述的装置,其特征在于,所述解析模块还包括:
第二注册表单识别单元,用于判断若当前分组标签中包含2个位置连续的且互为兄弟节点的密码输入框,则当前分组标签为注册表单。
19.如权利要求15所述的装置,其特征在于,所述解析模块还包括:
密码修改表单识别单元,用于判断若当前分组标签中包含3个位置连续且互为兄弟节点的密码输入框,则当前分组标签为密码修改表单。
CN2012100913114A 2012-03-30 2012-03-30 一种标记文件解析方法和装置 Active CN102651019B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2012100913114A CN102651019B (zh) 2012-03-30 2012-03-30 一种标记文件解析方法和装置
CN201310548150.1A CN103577578B (zh) 2012-03-30 2012-03-30 一种标记文件解析方法和装置
CN201310547761.4A CN103714117B (zh) 2012-03-30 2012-03-30 网页表单识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012100913114A CN102651019B (zh) 2012-03-30 2012-03-30 一种标记文件解析方法和装置

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN201310548150.1A Division CN103577578B (zh) 2012-03-30 2012-03-30 一种标记文件解析方法和装置
CN201310547761.4A Division CN103714117B (zh) 2012-03-30 2012-03-30 网页表单识别方法

Publications (2)

Publication Number Publication Date
CN102651019A true CN102651019A (zh) 2012-08-29
CN102651019B CN102651019B (zh) 2013-12-04

Family

ID=46693027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012100913114A Active CN102651019B (zh) 2012-03-30 2012-03-30 一种标记文件解析方法和装置

Country Status (1)

Country Link
CN (1) CN102651019B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034711A (zh) * 2012-12-10 2013-04-10 北京金山安全软件有限公司 表单识别方法和装置
CN104021185A (zh) * 2014-06-11 2014-09-03 北京奇虎科技有限公司 对网页中数据的信息属性进行识别的方法和装置
CN106209757A (zh) * 2014-12-10 2016-12-07 音弗维因有限公司 自动检测和填充登录字段的便捷登录方法、装置和系统
CN109246069A (zh) * 2018-06-15 2019-01-18 华为技术有限公司 网页登录方法、装置和可读存储介质
CN109918540A (zh) * 2019-02-26 2019-06-21 深圳市元征科技股份有限公司 一种xml文档解析方法、系统及电子设备和存储介质
CN110910529A (zh) * 2019-11-07 2020-03-24 腾讯科技(深圳)有限公司 一种对象状态检测方法、装置及存储介质
CN112148298A (zh) * 2020-09-11 2020-12-29 杭州安恒信息技术股份有限公司 Html数据解析方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071446A (zh) * 2007-06-22 2007-11-14 腾讯科技(深圳)有限公司 标记性语言文档的解析方法、解析模块和用户终端
CN101094194A (zh) * 2006-06-19 2007-12-26 腾讯科技(深圳)有限公司 一种提取Web页面中用户所需Web信息的方法
EP2357572A1 (en) * 2008-11-14 2011-08-17 Beijing Sogou Technology Development Co., Ltd. Processing method and apparatus of page resources

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101094194A (zh) * 2006-06-19 2007-12-26 腾讯科技(深圳)有限公司 一种提取Web页面中用户所需Web信息的方法
CN101071446A (zh) * 2007-06-22 2007-11-14 腾讯科技(深圳)有限公司 标记性语言文档的解析方法、解析模块和用户终端
EP2357572A1 (en) * 2008-11-14 2011-08-17 Beijing Sogou Technology Development Co., Ltd. Processing method and apparatus of page resources

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034711A (zh) * 2012-12-10 2013-04-10 北京金山安全软件有限公司 表单识别方法和装置
CN104021185A (zh) * 2014-06-11 2014-09-03 北京奇虎科技有限公司 对网页中数据的信息属性进行识别的方法和装置
CN104021185B (zh) * 2014-06-11 2017-04-05 北京奇虎科技有限公司 对网页中数据的信息属性进行识别的方法和装置
CN106209757A (zh) * 2014-12-10 2016-12-07 音弗维因有限公司 自动检测和填充登录字段的便捷登录方法、装置和系统
CN109246069A (zh) * 2018-06-15 2019-01-18 华为技术有限公司 网页登录方法、装置和可读存储介质
CN109246069B (zh) * 2018-06-15 2020-10-16 华为技术有限公司 网页登录方法、装置和可读存储介质
CN109918540A (zh) * 2019-02-26 2019-06-21 深圳市元征科技股份有限公司 一种xml文档解析方法、系统及电子设备和存储介质
CN109918540B (zh) * 2019-02-26 2023-04-21 深圳市元征科技股份有限公司 一种xml文档解析方法、系统及电子设备和存储介质
CN110910529A (zh) * 2019-11-07 2020-03-24 腾讯科技(深圳)有限公司 一种对象状态检测方法、装置及存储介质
CN110910529B (zh) * 2019-11-07 2022-04-29 腾讯科技(深圳)有限公司 一种对象状态检测方法、装置及存储介质
CN112148298A (zh) * 2020-09-11 2020-12-29 杭州安恒信息技术股份有限公司 Html数据解析方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN102651019B (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
CN102651019B (zh) 一种标记文件解析方法和装置
US8601120B2 (en) Update notification method and system
CN103177075B (zh) 基于知识的实体检测和消歧
CN101950312B (zh) 一种互联网网页内容解析方法
US20090089278A1 (en) Techniques for keyword extraction from urls using statistical analysis
US20090248707A1 (en) Site-specific information-type detection methods and systems
US11055373B2 (en) Method and apparatus for generating information
US10311120B2 (en) Method and apparatus for identifying webpage type
CN103810268B (zh) 加载搜索结果推荐信息、网址检测的方法、装置和系统
CN104063401A (zh) 一种网页样式地址合并的方法和装置
US20220245203A1 (en) A service packaging method based on web page segmentation and search algorithm
US8140508B2 (en) System and method for contextual commands in a search results page
CN111209325B (zh) 业务系统接口识别方法、装置及存储介质
CN103793508A (zh) 一种加载推荐信息、网址检测的方法、装置和系统
CN109889379B (zh) 数据采集方法、装置、管理设备及存储介质
CN110955855B (zh) 一种信息拦截的方法、装置及终端
CN103577578A (zh) 一种标记文件解析方法和装置
CN103714117A (zh) 网页表单识别方法
CN113761565B (zh) 数据脱敏方法和装置
CN115801455B (zh) 一种基于网站指纹的仿冒网站检测方法及装置
CN111158973A (zh) 一种web应用动态演化监测方法
CN114356991A (zh) 数据查询方法、数据聚合方法、装置、设备及介质
CN114900492A (zh) 异常邮件检测方法、装置、系统与计算机可读存储介质
CN113691548A (zh) 一种数据采集和分类存储方法及其系统
JP6763433B2 (ja) 情報収集システム、情報収集方法、及び、プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: BEIJING QIHU TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: QIZHI SOFTWARE (BEIJING) CO., LTD.

Effective date: 20121026

Owner name: QIZHI SOFTWARE (BEIJING) CO., LTD.

Effective date: 20121026

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100016 CHAOYANG, BEIJING TO: 100088 XICHENG, BEIJING

TA01 Transfer of patent application right

Effective date of registration: 20121026

Address after: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant after: Qizhi software (Beijing) Co.,Ltd.

Address before: The 4 layer 100016 unit of Beijing city Chaoyang District Jiuxianqiao Road No. 14 Building C

Applicant before: Qizhi software (Beijing) Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220801

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right