发明内容
有鉴于此,本申请提出一种页面数据采集方法,应用于服务端,该方法包括:
获取页面的历史关键数据;
根据获取到的所述历史关键数据在所述页面当前的数据中反向匹配出与所述历史关键数据对应的核心拓扑结构;
将所述核心拓扑结构作为解析模板对所述页面当前的数据进行解析,以采集所述页面的最新关键数据。
可选的,所述根据获取到的所述历史关键数据在所述页面当前的数据中反向匹配出与所述历史关键数据对应的拓扑结构包括:
根据所述页面当前的数据建立所述页面的拓扑结构;
根据预设的拓扑算法在所述页面的拓扑结构中反向匹配出所述历史关键数据对应的核心拓扑结构。
可选的,所述根据预设的拓扑算法在所述页面的拓扑结构中反向匹配出所述历史关键数据对应的核心拓扑结构包括:
将所述历史关键数据在所述页面的拓扑结构中进行数据匹配,以确定所述历史关键数据所在的节点;
在所述页面的拓扑结构中反向查找所述历史关键数据所在的节点的父节点,直到查找到的所有父节点均在同一个节点上聚合时停止;
根据所有查找到的节点创建与所述历史关键数据对应的核心拓扑结构。
可选的,所述将所述核心拓扑结构作为解析模板对所述页面当前的数据进行解析,以采集所述页面的最新关键数据包括:
将所述核心拓扑结构与所述页面的拓扑结构进行相似性匹配;
根据所述相似性匹配结果确定所述最新关键数据的位置;
根据确定出的所述最新关键数据的位置采集所述最新关键数据。
可选的,所述页面的拓扑结构为树形拓扑结构。
本申请还提出一种页面数据采集装置,应用于服务端,该装置包括:
获取模块,用于获取页面的历史关键数据;
匹配模块,用于根据获取到的所述历史关键数据在所述页面当前的数据中反向匹配出与所述历史关键数据对应的核心拓扑结构;
采集模块,用于将所述核心拓扑结构作为解析模板对所述页面当前的数据进行解析,以采集所述页面的最新关键数据。
可选的,所述匹配模块具体用于:
根据所述页面当前的数据建立所述页面的拓扑结构;
根据预设的拓扑算法在所述页面的拓扑结构中反向匹配出所述历史关键数据对应的核心拓扑结构。
可选的,所述匹配模块进一步用于:
将所述历史关键数据在所述页面的拓扑结构中进行数据匹配,以确定所述历史关键数据所在的节点;
在所述页面的拓扑结构中反向查找所述历史关键数据所在的节点的父节点,直到查找到的所有父节点均在同一个节点上聚合时停止;
根据所有查找到的节点创建与所述历史关键数据对应的核心拓扑结构。
可选的,所述采集模块具体用于:
将所述核心拓扑结构与所述页面的拓扑结构进行相似性匹配;
根据所述相似性匹配结果确定所述最新关键数据的位置;
根据确定出的所述最新关键数据的位置采集所述最新关键数据。
可选的,所述页面的拓扑结构为树形拓扑结构。
本申请通过获取页面的历史关键数据,并根据获取到的所述历史关键数据在所述页面当前的数据中反向匹配出与所述历史关键数据对应的核心拓扑结构,然后将所述核心拓扑结构作为解析模板对所述页面当前的数据进行解析,以采集所述页面的最新关键数据。实现了在从页面中解析数据时,即使页面结构发生改变,也不会导致解析出错而造成业务停滞。
具体实施方式
在从页面中采集数据时,如果页面进行了相应的系统升级改造,页面结构发生了改变,那么在解析该页面采集数据时,可能会造成解析出错而导致业务停滞。为了解决这种问题,通常可以人为的紧急修改解析逻辑,重新发布数据采集系统加以应对。然而在互联网时代,重新发布数据采集系统会存在不够智能的弊端。
有鉴于此,本申请提出一种页面数据采集方法,通过获取页面的历史关键数据,并根据获取到的历史关键数据在页面当前的数据中反向匹配出与历史关键数据对应的核心拓扑结构,然后将核心拓扑结构作为解析模板对所述页面当前的数据进行解析,以采集该页面的最新关键数据。实现了在从页面中解析数据时,即使页面结构发生改变,也不会导致解析出错而造成业务停滞。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的一种页面数据采集方法,该方法的执行主体可以为服务端,其中所述服务端在物理上可以是服务器、服务器集群或者云平台;该方法执行以下步骤:
步骤101、获取页面的历史关键数据;
步骤102、根据获取到的所述历史关键数据在所述页面当前的数据中反向匹配出与所述历史关键数据对应的核心拓扑结构;
其中,上述步骤101和步骤102的顺序可以互换。
步骤103、将所述核心拓扑结构作为解析模板对所述页面当前的数据进行解析,以采集所述页面的最新关键数据。
在本实施例中,关键数据可以是指该页面中所需要采集的数据。历史关键数据,可以是指服务端在本地存储的已经采集完成的该页面的关键数据。最新关键数据,可以是指该页面进行日常升级后,当前需要采集的关键数据。拓扑结构,是指由不同的数据节点以一定的数据形态构建而成的数据结构;例如,该页面的拓扑结构可以是由不同的数据节点以树形的数据形态构建而成的树形拓扑结构。核心拓扑结构,是指在页面的拓扑结构中,由历史关键数据所在节点构建而成的拓扑结构;由于历史关键数据可以只是页面当前数据中的一部分数据,因此核心拓扑结构可以是该页面的拓扑结构的一部分。
在针对页面中的关键数据进行采集时,通常可以由服务端上的数据采集系统来执行。在首次进行关键数据的采集时,数据采集系统首先可以根据该页面当前的数据来建立该页面的拓扑结构,对于建立完成的拓扑结构,可以由人工对该拓扑结构进行分析,对该拓扑结构中的关键数据所在的节点进行标注。当标注完成后,数据采集系统可以将标注后的拓扑结构作为模板,对该页面的数据进行解析,来解析出该页面中的关键数据,并将解析出的关键数据在本地存储以备使用。
然而,在实际应用中,由于B/S架构下的互联网系统在日常升级过程中,虽然页面的网址不会发生变化,但是页面的结构可能会发生改变,页面的结构一旦发生改变,那么在解析该页面采集关键数据时,就可能会造成解析出错而导致采集业务停滞。
在这种情况下,通常需要人工的修改数据采集系统的解析逻辑,重新发布系统来应对,然而通过这种方式来应对在数据采集过程中由于页面结构发生变化而造成的解析出错的情况,需要人工干预重新发布系统,明显存在不够智能的问题。
在本实施例中,为了使数据采集更加的智能化,服务端的数据采集系统在进行页面的关键数据采集时,可以在结构发生变化的页面中,反向查找出本地存储的历史关键数据所在的节点,然后根据查找到的历史关键数据所在的节点创建对应的核心拓扑结构,并以核心拓扑结构作为模板对该页面进行解析,来进行最新关键数据的采集。
由于在日常升级过程中,页面的结构虽然可能发生变化,但在升级前后该页面中的关键数据仅仅只是位置上的改变,数据本身不会发生变化,因此通过这种方式,可以在页面结构发生改变的情况下,仍然能够正常的对关键数据进行解析,而不会出现由于解析出错而造成的业务停滞。
以下以所述拓扑结构为树形拓扑结构为例进行详细说明。
页面在进行日常升级后,由于在升级过程中页面的网址不会发生变化,因此数据采集系统在针对该页面进行最新关键数据的采集时,仍然可以通过相同的网址查找到升级后的该页面。对于日常升级后的该页面,页面结构可能已经发生变化,此时数据采集系统可以根据该页面当前的数据重新建立对应的树形拓扑结构。其中,根据页面当前的数据建立树形拓扑结构的详细过程,本领域技术人员可以参考现有实现中的介绍,在本实施例中不再进行详述。
当该页面的树形拓扑结构重新建立完成后,数据采集系统可以获取本地存储的该页面的历史关键数据,并将获取到的历史关键数据作为样本,根据预设的拓扑算法在重新建立的树形拓扑结构中反向匹配出与该样本对应的核心拓扑结构。
在实现时,该预设的拓扑算法可以是反向的拓扑匹配算法。
根据该反向的拓扑匹配算法,数据采集系统可以将作为样本的历史关键数据在重新建立的树形拓扑结构中分别进行数据匹配,当在重新建立的树形拓扑结构中匹配到对应的历史关键数据后,则可以根据该历史关键数据在重新建立的树形拓扑结构中的位置,来确定出该历史关键数据所在的节点。通过这种方式,数据采集系统可以分别确定出历史关键数据在重新建立的树形拓扑结构中所在的节点。
当数据采集系统确定出历史关键数据在重新建立的树形拓扑结构中所在的节点后,根据该反向的拓扑匹配算法,数据采集系统还可以在重新构建的树形拓扑结构中分别反向查找历史关键数据所在节点的父节点,并判断反向查找到的所有父节点是否都聚合到同一个节点上。其中,该父节点是指历史关键数据所在节点的上一级节点。
如果反向查找的所有父节点并没有聚合到同一个节点上,那么可以在当前查找到的父节点的基础上,重复以上反向查找父节点的过程,继续向上一级进行遍历查找,直到查找的父节点聚合到同一个节点上时停止。当然,如果反向查找到的所有父节点都聚合到同一个节点上,此时可以停止上述反向查找父节点的过程。
当所有父节点都聚合到同一个节点上时,可以将该节点称之为祖先节点。当通过重复上述反向查找父节点的过程,查找到最终的祖先节点后,可以将所有遍历到的节点作为历史关键数据的有效节点分别进行单独记录,然后可以根据记录的历史关键数据的有效节点创建与该历史关键数据对应的核心拓扑结构。
当数据采集系统根据上述反向的拓扑匹配算法,成功反向匹配出与该历史关键数据对应的核心拓扑结构后,此时该核心拓扑结构可以用于表征进行了日常升级后的页面的结构,因此数据采集系统可以将该核心拓扑结构作为模板对该页面当前的数据进行解析,来采集该页面的最新关键数据。
其中,数据采集系统在将核心拓扑结构作为模板对该页面当前的数据进行解析时,可以将该核心拓扑结构与该页面重新建立的树形拓扑结构进行相似性匹配,然后可以根据相似性匹配结果来确定出最新关键数据的位置。
例如,由于该核心拓扑结构可能仅仅是该页面的树形拓扑结构中的一部分,因此在进行相似性匹配时,可以将该核心拓扑结构与该页面的树形拓扑结构进行合并,通过拓扑合并,可以很容易确定出核心拓扑结构中各节点在该页面的树形拓扑结构中的对应节点,从而通过这种节点的对应关系,可以很容易确定出最新关键数据在该页面的树形拓扑结构中所在的节点。
当数据采集系统通过相似性匹配确定出最新关键数据的位置后,可以基于该位置对最新关键数据进行采集。通过这种方式,可以有效地避免由于页面结构发生变化而导致解析出错,造成的业务停滞的问题。
而且,由于该核心拓扑结构,可以用于表征进行了日常升级后的页面的结构,而页面进行了日常升级后,在下一次日常升级之前,该页面的结构通常不会发生变化;因此,当该页面进行日常升级后,在进行下一次日常升级之前,如果该页面中挂载的最新关键数据也发生了变化,此时数据采集系统通过将该核心拓扑结构作为模板对页面进行解析时,仍然能够对该页面的最新关键数据进行正常解析。
当然,如果该页面再次进行了日常升级,该页面的结构再次发生变化,仍然可以重复以上的实施过程,重新选定历史关键数据作为样本,并基于上述反向的拓扑匹配算法基于重新选定的样本来确定核心拓扑结构,详细实施过程不再赘述。
以下结合具体的应用场景对以上方案进行详细说明。
在一种示例性的应用场景中,以上实施例的技术方案可以适用于网络信贷领域中,通过解析法院网站上公开的案例页面来采集与申贷客户相关的法院执行信息的应用场景。
在网络信贷领域,对信贷进行风险控制的依据通常可以包括诸如银行流水、征信报告以及法院执行信息等大量与申贷客户信用相关的数据,通过对这些数据进行分析可以对申贷用户的信用等级进行初步的评测,从而完成对信贷的风险控制。其中,在以上与申贷客户信用相关的数据中,有很大一部分可以从互联网上公开的页面中直接进行采集。
例如,可以通过解析法院网站上公开的案例页面直接采集与申贷客户相关的法院执行信息。然而,在通过解析法院网站上公开的案例页面直接采集与申贷客户相关的法院执行信息时,如果案例页面进行了相应的系统升级改造后,案例页面结构发生了改变,那么在解析该案例页面采集数据时,就可能会造成解析出错而导致业务停滞。
以下以通过解析法院网站上公开的案例页面采集与申贷客户相关的法院执行信息的应用场景为例,对以上实施例的技术方案进行详细描述。
假设该案例页面中,所要采集的与申贷客户相关的法院执行信息中包括案例名称(案例1)、案例发生时间、案例执行状态(执行中)以及案例的详细描述等关键数据。
请参见图2,数据采集系统在首次对该案例页面进行解析时,可以根据该页面当前的数据(例如该页面的所有脚本文件)生成如图2所示出的树形拓扑结构。
在图2所示出的树形拓扑结构中,可以人为的对该树形拓扑结构中,上述关键数据所在的节点进行标注,当标注完成后,数据采集系统可以将标注后的树形拓扑结构作为模板解析出该页面中所要采集的关键数据,并将解析出的关键数据在本地存储。
当该页面发生日常升级后,如果数据采集系统仍然按照上述标注后的树形拓扑结构作为模板对该页面进行解析,由于此时该页面结构发生了变化,因此会导致解析错误。
请参见图3,此时数据采集系统可以根据日常升级后的该页面当前的数据,生成如图3所示的树形拓扑结构。如图3所示,该页面日常升级后,页面的结构以及节点名称均发生了变化。
数据采集系统在对日常升级后的该页面进行解析时,可以将本地存储的已经解析出的关键数据作为历史关键数据,并将该历史关键数据作为样本,根据反向的拓扑匹配算法,在如图3所示出的树形拓扑结构中进行反向数据匹配,以查找出历史关键数据在图3所示出的树形拓扑结构中所在的节点。
当查找到历史关键数据所在的节点后,数据采集系统可以根据上述反向的拓扑匹配算法,在图3所示出的树形拓扑结构中继续反向查找历史关键数据所在节点的父节点,直到所有的父节点在同一个祖先节点上聚合时停止。
当查找到祖先节点后,数据采集系统可以将所有遍历到的节点进行单独记录,然后根据记录的所有节点建立与历史关键数据对应的核心拓扑结构,从如图3所示出的树形拓扑结构中抽离出如图4所示出的树形拓扑结构。
图4所示出的树形拓扑结构即为与历史关键数据对应的核心拓扑结构。数据采集系统可以将该核心拓扑结构作为模板,与图3所示出的树形拓扑结构进行合并,可以很容易确定出图4中各节点在图3中的对应节点,从而通过这种节点的对应关系,可以查找到日常升级后的该页面中最新的关键数据,对最新的关键数据进行采集。
请参见图5,假设该页面进行日常升级后,挂载的案例数据发生了更新,由正在“执行中”的“案例1”,更新为“已完结”的“案例N”,由于该页面的结构并未发生变化,因此该页面在进行本次日常升级以后,在下一次日常升级以前,可以持续的利用如图4所示出的核心拓扑结构作为模板,对该页面进行解析以获取最新的关键数据。
值得说明的是,以上描述的通过解析法院网站上公开的案例页面来采集与申贷客户相关的法院执行信息的应用场景,仅为示例性的,在实现时,以上实施例的技术方案也可以适用于其它类型的应用场景,在本实施例中不再进行一一详述。
通过以上实施例的描述可知,服务端上的数据采集系统通过获取页面的历史关键数据,并根据获取到的所述历史关键数据在所述页面当前的数据中反向匹配出与所述历史关键数据对应的核心拓扑结构,然后将所述核心拓扑结构作为解析模板对所述页面当前的数据进行解析,以采集所述页面的最新关键数据。实现了在从页面中解析数据时,即使页面结构发生改变,也不会导致解析出错而造成业务停滞。
与上述方法实施例相对应,本申请还提供了装置的实施例。
请参见图6,本申请提出一种页面数据采集装置60,应用于服务端,所述服务端可以是服务器;其中,请参见图7,作为承载所述页面数据采集装置60的服务器所涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述商品评价页面数据采集装置50通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置,所述装置60包括:
获取模块601,用于获取页面的历史关键数据;
匹配模块602,用于根据获取到的所述历史关键数据在所述页面当前的数据中反向匹配出与所述历史关键数据对应的核心拓扑结构;
采集模块603,用于将所述核心拓扑结构作为解析模板对所述页面当前的数据进行解析,以采集所述页面的最新关键数据。
在本实施例中,所述匹配模块602具体用于:
根据所述页面当前的数据建立所述页面的拓扑结构;
根据预设的拓扑算法在所述页面的拓扑结构中反向匹配出所述历史关键数据对应的核心拓扑结构。
在本实施例中,所述匹配模块602进一步用于:
将所述历史关键数据在所述页面的拓扑结构中进行数据匹配,以确定所述历史关键数据所在的节点;
在所述页面的拓扑结构中反向查找所述历史关键数据所在的节点的父节点,直到查找到的所有父节点均在同一个节点上聚合时停止;
根据所有查找到的节点创建与所述历史关键数据对应的核心拓扑结构。
在本实施例中,所述采集模块603具体用于:
将所述核心拓扑结构与所述页面的拓扑结构进行相似性匹配;
根据所述相似性匹配结果确定所述最新关键数据的位置;
根据确定出的所述最新关键数据的位置采集所述最新关键数据。
在本实施例中,所述页面的拓扑结构为树形拓扑结构。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。