本申请提供了一种标记文件解析方法和装置,用以解决现有技术中对标记文件解析成功率低的问题。本申请通过获取标记文件中的标签对象生成标签集合;根据所述标签集合中标签对象的公共属性对所述标签对象进行分组;从所述分组的结果获得一个或多个分组标签;依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性;从相匹配的分组标签中获取标记文件解析用的数据。对标签对象按其公共属性进行分组,使得标记文件中原本无序的标签对象之间建立了关联,非常有利于做进一步的匹配分析,有效提高了标记文件的解析成功率。
【技术实现步骤摘要】
本申请涉及数据解析
,特别是涉及一种标记文件解析方法和装置。
技术介绍
目前互联网技术已经深入影响人们的生活,诸如电子邮箱、论坛、网页游戏等也已成为人们日常工作和娱乐中不可或缺的一部分。但上述互联网应用大多需要用户注册并登录后才能使用,因此用户需要记忆大量的用户名和密码。为了帐号的安全,用户通常还需要设置较为复杂的数字、字母、特殊符号组合的密码,进一步加大了记忆的难度,在每次登录时还需要手工输入,这一切无疑对用户的使用造成了负担。网页自动填表就是解决这一问题的技术,它可以在保存用户在网页中输入的用户名和密码,在下一次用户打开相同网页时,自动帮用户填写已保存的用户名和密码,用户不必再记忆和填写大量的用户名和密码,使用各种网络资源和服务更加轻松随意。自动填表这项技术中的关键在于能够预先检测并判断页面中是否存在用户需要填写并提交的表单,是登录表单?还是注册表单?首先要能识别这些表单,然后才可以实现后续的保存、帮助用户填写的步骤。目前,现有识别网页表单的技术一般包括以下步骤首先,获取网页中的表单。通过识别网页对应的超文本代码(HTML, HyperTextMarkup Language)中是否存在〈form〉标签,若存在,就将该〈form〉标签内所有〈input〉输入框作为一个表单。参见下面的一个〈form〉表单的示例代码〈form action=form_action.asp method=get>用户名〈input type=text name=fname /></p>密马<input type=password name=lname /></p> 〈input type=”submit” value=”提交”丨></form>其次,识别所获表单的类型,确定该表单是否为需要自动填表的对象。其关键是要能识别该表单是否是登录表单。具体的,通过判断该表单中输入框〈input〉的类型type为密码框password的输入框个数来判断该表单是否是登录表单。若该表单中密码输入框个数为I则认为该表单为登录表单。最后,对识别出的登录表单实施自动填写等相关操作。可以看出,以上现有表单识别过程中首先要找到网页中的〈form〉标签,将该〈form〉标签内的输入框作为一个表单后才能实施后续进一步的分析。但由于目前很多页面 中并不是所有表单实现都使用〈form〉标签,而是存在多种实现表单的方式,如在<div>标签中实现含有输入框的表单,其HTML参考代码如下<div style=color:#OOFFOO>用户名〈input type=text name=fname /></p>密马<input type=password name=lname /></p> 〈input type=”submit” value=”提交n /></div>面对这种大量存在的缺少〈form〉标签的表单,基于现有技术的表单识别方法就会失败,造成识别成功率非常低。据统计,上述现有技术表单识别成功率只有40%左右。 总之,需要本领域技术人员迫切解决的一个技术问题就是如何能够提高现有网页表单识别技术中因网页中缺失〈form〉标签而导致的识别失败,识别成功率低的问题。
技术实现思路
本申请所要解决的技术问题是提供一种标记文件解析方法和装置,以便有效解决现有技术解析HTML网页时成功率低的问题。为了解决上述问题,本申请公开了一种标记文件解析方法,包括获取标记文件中的标签对象,生成标签集合;根据所述标签集合中标签对象的公共属性,对所述标签对象进行分组,从所述分组的结果获得一个或多个分组标签;依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性;从相匹配的分组标签中,获取标记文件解析用的数据。优选的,根据所述标签集合中标签对象的公共属性对所述标签对象进行分组,包括将标签集合中具有相同父节点的标签对象置于同一分组标签内。优选的,所述从所述分组的结果获得一个或多个分组标签之后还包括分组标签再分组,包括判断当前分组结果中一个或多个分组标签;若当前分组标签包含两个或多个标签对象,且所述两个或多个标签对象不具有相同的父节点,则将当前分组标签内具有相同父节点的标签对象置于另一分组标签内;重复上述步骤直到当前分组标签不可再分组。优选的,所述标记文件是超文本标记HTML文件。优选的,所述标签对象是〈input〉输入框;所述依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性还包括若当前分组标签中仅含有I个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象不是文本输入框,则当前分组标签为登录表单。优选的,若当前分组标签为登录表单,且当前分组标签内密码输入框存在多级父节点,且当前分组标签不可再分,且所述密码输入框的最近父节点内包括至少一个文本输入框,则将所述密码输入框最近父节点内的标签对象置于新的分组标签内。优选的,所述依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性还包括若当前分组标签中仅含有I个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象是文本输入框,则当前分组标签为注册表单。优选的,所述依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性还包括若当前分组标签中包含2个位置连续的且互为兄弟节点的密码输入框,则当前分组标签为注册表单。优选的,所述依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性还包括若当前分组标签中包含3个位置连续且互为兄弟节点的密码输入框,则当前分组标签为密码修改表单。优选的,在按预定规则对所述一个或多个分组标签进行解析之前还包括为解决上述问题,本申请还公开了一种网页填充方法,包括标记文件解析;目标数据存储;目标数据填充;所述标记文件解析包括获取标记文件中的标签对象,生成标签集合;根据所述标签集合中标签对象的公共属性,对所述标签对象进行分组,从所述分组的结果获得一个或多个分组标签;依据预置的标记文件解析映射表,匹配所述一个或多个分组标签中的标签对象的属性;相匹配的分组标签为目标输入项; 所述目标数据存储包括从所述目标输入项中获取目标数据并存储在配置信息中;所述目标数据填充包括从配置信息中获取目标数据并填充在所述标记文件对应的目标输入项中。为解决上述问题,本申请还公开了一种标记文件解析装置,包括获取模块,用于获取标记文件中的标签对象;集合生成模块,用于将所述获取模块得到的标签对象生成标签集合;分组模块,用于根据所述标签集合中标签对象的公共属性对所述标签对象进行分组;分组标签获取模块,用于获取所述分组模块生成的一个或多个分组标签;解析模块,用于依据预置的标记文件解析映射表,匹配所述分组标签获取模块所获取的一个或多个分组标签中的标签对象的属性;从相匹配的分组标签中获取标记文件解析用的数据。 优选的,所述分组模块还包括 第一分组单元,用于将标签集合中具有相同父节点的标签对象置于同一分组标签内。优选的,所述分组模块还包括第二分组单元,用于判断若当前分组标签包含两个或多个标签对象,且本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种标记文件解析方法,其特征在于,包括 获取标记文件中的标签对象,生成标签集合; 根据所述标签集合中标签对象的公共属性,对所述标签对象进行分组,从所述分组的结果获得ー个或多个分组标签; 依据预置的标记文件解析映射表,匹配所述ー个或多个分组标签中的标签对象的属性; 从相匹配的分组标签中,获取标记文件解析用的数据。2.如权利要求I所述的方法,其特征在于,根据所述标签集合中标签对象的公共属性对所述标签对象进行分组,包括 将标签集合中具有相同父节点的标签对象置于同一分组标签内。3.如权利要求2所述的方法,其特征在于,所述从所述分组的结果获得ー个或多个分组标签之后还包括分组标签再分组,包括 判断当前分组结果中ー个或多个分组标签; 若当前分组标签包含两个或多个标签对象,且所述两个或多个标签对象不具有相同的父节点,则将当前分组标签内具有相同父节点的标签对象置于另一分组标签内; 重复上述步骤直到当前分组标签不可再分组。4.如权利要求I所述的方法,其特征在于,所述标记文件是超文本标记HTML文件。5.如权利要求I所述的方法,其特征在于,所述标签对象是〈input〉输入框; 所述依据预置的标记文件解析映射表,匹配所述ー个或多个分组标签中的标签对象的属性还包括 若当前分组标签中仅含有I个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象不是文本输入框,则当前分组标签为登录表単。6.如权利要求5所述的方法,其特征在于,还包括 若当前分组标签为登录表单,且当前分组标签内密码输入框存在多级父节点,且当前分组标签不可再分,且所述密码输入框的最近父节点内包括至少ー个文本输入框,则将所述密码输入框最近父节点内的标签对象置于新的分组标签内。7.如权利要求5所述的方法,其特征在于,所述依据预置的标记文件解析映射表,匹配所述ー个或多个分组标签中的标签对象的属性还包括 若当前分组标签中仅含有I个密码输入框,且位于所述密码输入框下级兄弟节点的标签对象是文本输入框,则当前分组标签为注册表单。8.如权利要求7所述的方法,其特征在于,所述依据预置的标记文件解析映射表,匹配所述ー个或多个分组标签中的标签对象的属性还包括 若当前分组标签中包含2个位置连续的且互为兄弟节点的密码输入框,则当前分组标签为注册表单。9.如权利要求8所述的方法,其特征在于,所述依据预置的标记文件解析映射表,匹配所述ー个或多个分组标签中的标签对象的属性还包括 若当前分组标签中包含3个位置连续且互为兄弟节点的密码输入框,则当前分组标签为密码修改表単。10.ー种网页填充方法,其特征在于,包括标记文件解析;目标数据存储;目标数据填充; 所述标记文件解析包括 获取标记文件中的标签对象,生成标签集合; 根据...
【专利技术属性】
技术研发人员:杭程,李超,万勇,任寰,
申请(专利权)人:奇智软件北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。