发明内容
本发明提供了一种互动式网页数据精确采集方法,结合网页抓包技术与机器学习技术,步骤包括:
S10:对目标数据的网站网页进行数据结构模型建立;
S20:确定网页目标元素并进行模型分析;
S30:智能评估有效数据范围并圈定展示;
S40:判断采集范围内各元素存在事件,与用户进行互动确定,实现精确采集网页数据。
进一步的,所述S30包括:
S31:智能分析目标数据所在节点所属模块,关联页内同类模块;
S32:标识单页内目标元素的采集范围。
进一步的,所述S10包括对网站网页进行结构分析,提取各元素标签的样式属性并进行多维度的组合分类,再对分类进行相似度评定。
具体的,所述S10包括对网站网页进行判断是否已经做数据结构模型构建,若未构建则进行网站网页数据抓包,获取渲染后的页面源码,分析页面源码后的各标签元素,并标注元素标签层级为A;再提取标签元素的样式属性,进行同样式属性的分类;再根据标注还原同样式属性所在层级,获取同层级同样式属性标签的父节点信息并标注为B,获取不同层级同样式属性标签的父节点信息并标注为C;
圈定标注为B的所有元素为第一目标范围;
对标注为C的所有元素进行相似度算法评估,计算并圈定最为相近的元素为第二目标范围;
所述S20为用户选取所述第一目标范围内的任一元素,系统分析用户选取的元素可能包含的功能项并分别记录;
所述S31包括系统以选取的元素的同类元素为目标元素,检索第一目标范围和第二目标范围,且追溯是否存在历史范围确定操作所圈定的第三目标范围;
所述S32为系统完成目标元素的分析和检索后便圈定并展示目标元素所在的第一目标范围及部分第三目标范围。
进一步的,所述S32包括:
S321:根据数据结构模型评定目标数据在第一目标范围内的所有同类元素,记为元素集X,并进行范围框选展示及首末数据的标签高亮展示,用户可通过拖拉标签进行数据范围的确定与修正;
S322:根据数据结构模型评定目标数据在第三目标范围内的所有同类元素,记为元素集 Y,并进行范围框选展示及首末数据的标签高亮展示,用户可通过拖拉标签进行数据范围的确定与修正;
S323:提示用户进行第一数据范围确定,并提示操作方法,包括合并S41和42确定的数据范围,形成第一数据范围;
S324:用户确定第一数据范围;
S325:判断第一数据范围是否确定完成;若完成,则记录用户的范围确定操作,生成或优化该元素的第三目标范围,进而优化数据结构模型;若未完成,则提示用户可执行操作或操作选择,当用户再次确定第一数据范围后,生成或优化该元素的第三目标范围,进而优化数据结构模型。
进一步的,所述S40包括S41:智能评判第一数据范围内所有元素包含的可能性功能项或各种可能性操作结果,再将其进行归类及最大共性提炼;
S42:通过交互对话框进行展示并引导用户进行功能项选择操作的确认。
进一步的,还包括S50:当未满足用户对数据爬取的需求,或数据结构模型内仍存在与目标元素关联但未进行用户确认的历史范围确定操作所圈定的第三目标范围内容时,系统通过交互对话框对用户进行相应的引导操作,包括:
1、对已经构建过数据结构模型的网页进行历史相同操作事件的检索,并进行相关元素的推荐;
2、系统判断第一数据范围是否与网页的高级配置项相同,若相同,则通过交互式对话框向用户推荐对应的高级配置项,并生成对应的采集规则;
3、在对网站进行多列表或列表与字段兼容的数据采集时,系统通过互动对话框引导用户逐一完成各个列表的采集配置,同时数据结构模型自动分析用户所需的列表是否为同结构列表,是否能够合并,并引导用户进行列表关联或列表合并操作。
进一步的,还包括S60:记录同一个网站的数据结构模型在面向每个用户时,用户的所有确定操作,形成历史操作记录,并将此汇成相应的训练集来实现该网站的数据结构模型的自我迭代;通过自我迭代以及交互式的用户确认实现网站数据结构模型的迭代与网站的迭代同步,减少网站内容稍微变更就无法抓取之前配置的数据内容的情况。
进一步的,所述S20包括S21:智能搜索数据结构模型中保存的对目标数据的历史操作记录,推送用户是否进行相同操作
由上述对本发明的描述可知,和现有技术相比,本发明提出的一种互动式网页数据精确采集方法具有如下优点:
1、本方法关注用户体验感,提供更多的用户互动场景,通过互动,实现精确采集网页数据;
2、本方法与用户互动方式简便,降低了用户的技术门槛;
3、本方法采集不同用户对同一网页的操作,形成历史操作记录,历史操作记录能够用于给用户推送操作方案,也能够成为训练集,实现网页的数据结构模型的自我迭代。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一:
请参阅图1,一种互动式网页数据精确采集方法,结合网页抓包技术与机器学习技术,步骤包括:
S10:确定目标网站并进行网站结构模型判断;
具体的,请参阅图2,包括对网站网页进行判断是否已经做数据结构模型构建,若未构建则进行网站网页数据抓包,获取渲染后的页面源码,分析页面源码后的各标签元素,并标注元素标签层级为A;再提取标签元素的样式属性,进行同样式属性的分类;再根据标注还原同样式属性所在层级,获取同层级同样式属性标签的父节点信息并标注为B,获取不同层级同样式属性标签的父节点信息并标注为C;
圈定标注为B的所有元素为第一目标范围;
对标注为C的所有元素进行相似度算法评估,计算并圈定最为相近的元素为第二目标范围;
S20:确定网页目标元素并进行模型分析;
即用户选取所述第一目标范围内的任一元素,系统分析用户选取的元素可能包含的功能项或操作项并分别记录,其元素可能包含的功能项或操作项包括但不局限于:是否可进行点击事件、是否可进行文本输入、是否存在url链接、是否含有InterHtml、OuterHtml、是否存在元素Value、是否可进行循环遍历等,系统与用户进行结果样例式互动,并进行“用户可操作内容”的提示;
S21:智能搜索数据结构模型中保存的对目标数据的历史操作记录,推送用户是否进行相同操作;
S30:智能评估有效数据范围并圈定展示;
S31:智能分析目标数据所在节点所属模块,关联页内同类模块,具体为系统以选取的元素的同类元素为目标元素,检索第一目标范围和第二目标范围,且追溯是否存在历史范围确定操作所圈定的第三目标范围。
S32:标识单页内目标元素的采集范围,通过圈定并展示目标元素所在的第一目标范围及部分第三目标范围,具体步骤请参阅图3,包括:
S321:根据数据结构模型评定目标数据在第一目标范围内的所有同类元素,记为元素集 X,并进行范围框选展示及首末数据的标签高亮展示,用户可通过拖拉标签进行数据范围的确定与修正;
S322:根据数据结构模型评定目标数据在第三目标范围内的所有同类元素,记为元素集 Y,并进行范围框选展示及首末数据的标签高亮展示,用户可通过拖拉标签进行数据范围的确定与修正;
S323:提示用户进行第一数据范围确定,并提示操作方法,包括合并S41和S42确定的数据范围,形成第一数据范围;
S324:用户确定第一数据范围;
S325:判断第一数据范围是否确定完成;若完成,则记录用户的范围确定操作,生成或优化该元素的第三目标范围,进而优化数据结构模型;若未完成,则提示用户可执行操作或操作选择,当用户再次确定第一数据范围后,生成或优化该元素的第三目标范围,进而优化数据结构模型。
需注意的是:
(1)元素集X和Y的内包含的网页元素不可存在包含关系,且两元素集进行分开展示;
(2)用户需确定框选内容是否已完全覆盖所需的数据采集范围,由互动对话框辅助实现;
(3)提示用户可执行操作及操作选择包括:点击和拖拉边框,具体视实际需要而定,若为分开列表的单字段元素的范围添加则采用点击操作;若为同列表的字段元素范围扩增则点击或拖拉边框均可操作;
(4)每个元素都根据用户的实际操作生成与操作相关的第三目标范围(多个),并根据用户的实际操作不断的优化第三目标范围以及其与第一目标范围的关联关系。
S40:判断采集范围内各元素存在事件,与用户进行互动确定,实现精确采集网页数据,即基于S30,对调整范围后的目标数据进行所有元素功能项的归类及同类功能项提取与提示,包括:
S41:智能评判第一数据范围内所有元素包含的可能性功能项或各种可能性操作结果,再将其进行归类及最大共性提炼;
S42:通过交互对话框进行展示并引导用户进行功能项选择操作的确认。
S50:当未满足用户对数据爬取的需求,或数据结构模型内仍存在与目标元素关联但未进行用户确认的历史范围确定操作所圈定的第三目标范围内容时,根据用户操作判断用户可能存在的需求元素并引导用户操作:
S51:检索模型历史雷同操作事件,并进行相关元素的推荐:对于系统已存在数据结构模型的网站,一般存有之前本用户或其他用户的操作数据,系统将判断用户需要采集的目标元素数据以及需要的数据功能是否再此之前有过同样的操作或包含了与该元素操作等同效果的其他元素操作,若有响应的操作,系统将通过交互对话框进行相应的推荐,并在页面配合框选对应的元素(单元素字段或元素列表)供用户进行是否同步采集的确认。
S52:需高级配置项(如需用户采用Xpath配置等)的判断与可选操作引导:用户每次执行完网站页面需要采集元素的确定后,系统将自动判断其实际目标范围是否存在页面下翻等其他高级配置需求,并通过交互对话框将其所需的高级配置项与用户进行确定,生成对应的采集规则。
S53:需多列表采集任务的支持与操作引导:处于某些特殊需求,用户可能对一些结构复杂的网站需要进行多列表或列表与字段兼容的数据采集,系统可以通过互动对话框引导用户逐一完成各个列表的采集配置,同时模型自动分析用户所需的列表是否为同结构列表,是否可做列表合并,并引导用户进行列表关联或列表合并操作,在实现非结构化数据结构化的同时最大化的还原用户需要的数据采集信息。
部分网站较为特殊的可能存在无法识别或模型分析异常的情况,系统可以根据实际情况反馈分析结构,并由用户主动发起协助构建/维护网站结构模型,一般情况下,出现网站无法识别或模型分析异常主要原因有:
1、目标网站已删除,无法根据链接再次打开网页;
2、目标网站维护升级,临时性对外关闭网站;
3、网络通讯异常,导致抓包数据丢失等。
S60:用户行为操作跟踪记录,实现网站结构模型训练与优化:记录同一个网站的数据结构模型在面向每个用户时,用户的所有确定操作,形成历史操作记录,并将此汇成相应的训练集来实现该网站的数据结构模型的自我迭代;通过自我迭代以及交互式的用户确认实现网站数据结构模型的迭代与网站的迭代同步,减少网站内容稍微变更就无法抓取之前配置的数据内容的情况。
本申请中,关于“对话方式与用户进行人机互动及需求挖掘”,如以上步骤所涉及的“交互对话框”是本方法里用于用户需求确定的操作入口工具,其创新点在于:
(1)根据用户的实际操作过程,结合数据结构模型分析出的元素相关项,进行注意事项通知;
(2)根据用户的实际操作步骤,结合模型智能分析、判断输出目标元素内可能存在的用户操作分支并给予提示与操作选择;
(3)根据用户的实际操作结果,结合模型历史存在的同类操作结果所关联的执行内容,进行优选推送;
(4)根据用户的实际操作需要,用户可以主动唤醒新的执行流程,或直接输入关键词获取帮助信息,其将引导用户进行相关操作。
(5)分解模型分析结果,对用户采集目标数据配置进行执行结果反馈,并引导用户完成相关采集规则的配置操作。
(6)通过对话引导用户实现采集数据的确认,系统记录还原互动对话关注内容并绘制其数据采集流程。
需要注意的是,本方法在用户实际数据采集流程的实现过程中视实际目标网站的模型构建情况及用户采集需要决定,可能重复执行图1流程的多个步骤或打乱其顺序执行步骤,可不必严格按图1的流程顺序执行。
实施例二:
本实施例在实施例一的基础上,以凤凰网数据采集为例,如下:
网站特点:
1、采用列表的方式罗列各新闻事件标题,虽页面存在多个列表块,但其结构大致相同;
2、面对用户展示的统一栏目中,却存在多列表块的处理,请参阅图4,若采用传统的提取同层级同类元素的方法进行数据采集,必定出现数据丢失的情况。
需求假设:
用户需采集图4中的“要闻”模块数据。
实现方案:
创建凤凰网数据结构模型,通过标签分析页面各元素的层级结构,以及所属的第一目标范围和关联的第二目标范围,如图4和5,标注为“块1-1”,“块1-2”,“块1-3”内的各元素圈起的目标范围为第一目标范围;“块1”,“块2”内各元素之间圈起的目标范围为第二目标范围。
假设用户确认采集的数据元素为“团结一心开创富民兴陇新局面”。
此时系统自动判断该元素所在的第一目标范围(块1-1),及第二目标范围(块1)并给予效果展示,如图6所示,用户进行点击确定目标数据范围后,系统进行目标数据范围合并,如图7所示。
系统检索目标采集元素是否存在第三目标范围,若无第三目标范围则与用户确定是否完成范围圈定,如图7所示。若存在第三目标范围则展示第三目标范围与用户确定是否同步采集,如图8所示。
用户确定当前的范围目标无法满足需要并进行操作选择后,提示用户如何进行目标范围扩大操作,如图9所示。
用户完成目标范围的扩大操作后,系统记录用户操作内容,进行目标数据范围合并,并生成或优化第三目标范围数据,其界面效果如10所示。
重复以上3-5步操作直至用户完全确定采集范围内容,同时根据用户操作的所有确定项,生成训练数据进行网页结构模型的优化。
实施例三
实施例在实施例一的基础上,以企查查网数据采集为例,如下:
网页特点
1、网站首页以搜索为主,一般用户关注的数据信息必须进行关键词的键入后才会跳转到相应的页面进行数据查看;
2、目标信息查询页的网页结构较为复杂,为多列表组合,同时列表内容格式差异巨大;
3、网站单字段数据信息与列表混合元素较多,精确目标定位上存在的难度较大。
需求假设:
用户需采集京东相关企业的工商信息、股东信息、成员信息、对外投资信息、经营状况及知识产权情况。
实现方案:
1、创建企查查网站结构模型后,确认企查查首页各元素的第一目标范围、第二目标范围以及各元素的可操作功能项,提示用户可进行的操作;
2、识别用户页面操作的元素选择点击以及文本输入事件,绘制用户操作流程,并进行网络数据抓包;
3、如图11所示,完成用户目标范围确定,系统进行目标范围元素的可操作功能项归类,并提取范围元素内相同的功能项进行操作功能确定,有以下注意事项:
A、若用户选择对目标范围内的其他元素进行相同操作,则系统会根据实际情况自动生成操作流程,进行目标范围内所有元素循环进行选择的操作功能执行;
B、若用户选择不对目标范围内的其他元素进行相同操作,则系统仅对用户操作的单个元素进行选择的操作功能执行。
4、进行元素点击后的页面分析,并确定用户的目标元素a(如“工商信息”中的“法定代表人”),其根据模型以及用户操作后分析结果,如图12所示,以下详细说明:
A、图中红色区域(法定代表人)的字段为模型分析出来的第一目标范围,橙色区域的字段(“注册资本”、“实缴资本”)为模型分析出来的第二目标范围,绿色区域的字段(“经营状态”、“成立日期”等)为用户新增的第三目标范围,其为用户点击或拖拉边框所确定的单目标元素所在第一目标范围的所有元素;
B、该步操作仅完成了工商信息基础字段的采集,并未进行工商信息表中基础字段数据内容的采集。根据互动对话框进行该部分采集设置的保存,在此暂定保存采集列表的名字为:列表 1。
5、用户确定采集的目标元素b(如“工商信息”中的“开业”),系统根据模型以及用户操作后分析结果完成工商信息表中基础字段数据内容的采集确定,暂命名为:列表2。
系统根据网页结构模型可判定目标元素a所确定的目标数据范围与目标元素b所确定的目标数据范围在同一table标签下,且存在相同层级关系,系统提示用户是否进行元素关联合并,其相关操作展示效果如图13所示,系统记录用户的操作选择并生成对应的执行流程。
6、采用相同的办法完成本案例需求假设中的股东信息、成员信息、对外投资信息、经营状况及知识产权情况的数据字段采集,并根据网页层级结构判断完成各个列表间的数据关联。
7、以上4-6的全部操作可完成一个完整单元元素点击事件后的所有字段采集设置以及关联展示。若在操作3中选择对目标范围内的其他元素进行相同操作时,系统将自动提示是否复用定义的字段项并填充相关数据,选择为“是”时,系统将在各个字段下插入各元素的对应数据并完成关联。
8、以上所有的用户确定结果的操作项,系统将进行记录并生成训练集,用户网页结构模型训练,实现模型的自我学习及迭代。
由上述对本发明的描述可知,和现有技术相比,本发明提出的一种互动式网页数据精确采集方法具有如下优点:
1、本方法关注用户体验感,提供更多的用户互动场景,通过互动,实现精确采集网页数据;
2、本方法与用户互动方式简便,降低了用户的技术门槛;
3、本方法采集不同用户对同一网页的操作,形成历史操作记录,历史操作记录能够用于给用户推送操作方案,也能够成为训练集,实现网页的数据结构模型的自我迭代。
上面结合附图对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。