页面爬虫规则更新方法及系统与流程

文档序号:17723053发布日期:2019-05-22 02:18阅读:289来源:国知局
页面爬虫规则更新方法及系统与流程

本发明涉及爬虫领域,尤其涉及一种页面爬虫规则更新方法及系统。



背景技术:

爬虫技术作为网页信息获取的一种方式已被人们熟知,例如随着互联网信息量的爆炸式增长,以及网剧,直播,短视频的不断兴起,越来越多的人开始通过网络观看视频,但这些视频中可能存在一些涉黄涉暴的不良视频,因此可以由爬虫技术入手,自动获取视频网站的页面信息,并据此进一步定位源视频,后续再结合ai自动识别技术即可以准确判断视频内容是否涉黄涉暴。

现有的爬虫方案主要是人工查询页面代码,研究其对应的爬取规则,编写相应的爬虫程序。但当网站样式变化导致原规则无法适用时,通常需要人工重新制定新规则。由于网页数量较多且无法预知网站会有怎样的变化,定时监控爬虫状态来判断爬取规则是否失效,当发现过期时,往往已产生一部分不准确的数据,需要删除这部分数据,制定新的爬取规则,或者需要人工频繁地维护爬取规则,该过程投入的人力成本较大但效率却低。对于人工个体而言,该过程同样枯燥繁琐并且异常耗时,难以保证爬虫效果的准确性和稳定性。



技术实现要素:

针对上述问题,本发明提出了一种页面爬虫规则方法及系统,基于已有的爬取结果以及已变化的内容,自动判定并更新爬取规则,由此可以避免人工维护爬虫的上述弊端。

本发明采用的技术方案如下:

一种页面爬虫规则更新方法,包括:

利用初始爬虫规则爬取页面的内容实体;

根据实体样本与所述内容实体之间的一致关系,判定是否需要进行规则更新;

若是,则根据所述实体样本以及所述内容实体发生变化的页面信息,更新所述初始爬虫规则。

可选地,所述根据所述实体样本以及所述内容实体发生变化的页面信息,更新所述初始爬虫规则包括:

在与所述实体样本相应的页面中,获取与所述实体样本一致的目标实体;

确定所述目标实体在本页面中的位置信息;

从不同页面各自的所述位置信息中确定目标位置信息;

利用所述目标位置信息更新所述初始爬虫规则。

可选地,所述从不同页面各自的所述位置信息中确定目标位置信息包括:

将一个页面中针对同一个所述实体样本的所述位置信息汇总为集合;

求取全部页面的所述集合的交集;

以所述交集中的所述位置信息作为所述目标位置信息。

可选地,所述确定所述目标实体在本页面中的位置信息包括:

将所述目标实体的上层元素作为定位条件,在本页面中获取能够匹配该定位条件的结果;

直至所述目标实体是获取到的唯一结果时,基于当前的定位条件确定所述位置信息。

可选地,所述将所述目标实体的上层元素作为定位条件包括:

获取所述目标实体之上的第一层元素;

判断所述第一层元素是否包含特定属性信息;

若是,则利用所述第一层元素作为定位条件;

若否,则获取所述目标实体之上的第二层元素,并判断所述第二层元素是否包含所述特定属性信息,以此方式直至获取到任一上层元素中包含所述特定属性信息后,将所有已获取到的上层元素作为定位条件。

可选地,所述确定所述目标实体在本页面中的位置信息还包括:

判断基于当前层元素所获取到的结果是否为多个;

若是,则获取当前层元素的上一层元素重新确定所述定位条件,并重新在本页面中获取能够匹配该定位条件的结果;

若否,则确定所述目标实体是获取到的唯一结果。

可选地,所述根据实体样本与所述内容实体之间的一致关系,判定是否需要进行规则更新包括:

实时监测所述内容实体与所述实体样本是否一致;

当监测到出现二者不一致的页面的数量超过预设阈值时,则判定需要进行规则更新。

一种页面爬虫规则更新系统,包括:

爬虫模块,用于利用初始爬虫规则爬取页面的内容实体;

更新判定模块,用于根据实体样本与所述内容实体之间的一致关系,判定是否需要进行规则更新;

规则更新模块,用于在所述更新判定模块输出为是时,根据所述实体样本以及所述内容实体发生变化的页面信息,更新所述初始爬虫规则。

可选地,所述规则更新模块具体包括:

目标实体定位单元,用于在与所述实体样本相应的页面中,获取与所述实体样本一致的目标实体;

位置信息确定单元,用于确定所述目标实体在本页面中的位置信息;

目标位置信息确定单元,用于从不同页面各自的所述位置信息中确定目标位置信息;

规则更新单元,用于利用所述目标位置信息更新所述初始爬虫规则。

可选地,所述更新判定模块具体包括:

变化监测单元,用于实时监测所述内容实体与所述实体样本是否一致;

更新判定单元,用于当监测到出现二者不一致的页面的数量超过预设阈值时,则判定需要进行规则更新。

本发明进行的是将爬虫规则自动更新与当前网页内容以及原始规则相关联,具体是利用初始爬虫规则爬取页面的内容实体;根据实体样本与所述内容实体之间的一致关系,判定是否需要进行规则更新;若是,则根据所述实体样本以及所述内容实体发生变化的页面信息,更新所述初始爬虫规则。通过本发明能够根据爬取结果自适应输出更新的爬虫规则,无需人工频繁监控、维护爬虫程序,大大减少人工工作量的同时,可以有效保证爬虫效果的准确性和稳定性。

附图说明

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步描述,其中:

图1为本发明提供的页面爬虫规则更新方法的实施例的流程图;

图2为本发明提供的变化监控方法的实施例的流程图;

图3为本发明提供的规则更新方法的具体实施例的流程图;

图4为本发明提供的位置信息确定方法的具体实施例的流程图;

图5为本发明提供的定位条件确定方法的具体实施例的流程图;

图6为本发明提供的定位结果确定方法的具体实施例的流程图;

图7为本发明提供的目标位置信息确定方法的具体实施例的流程图;

图8为本发明提供的页面爬虫规则更新系统的实施例的方框示意图。

附图标记说明:

1爬虫模块2更新判定模块3规则更新模块

具体实施方式

下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本发明提供了一种页面爬虫规则更新方法的实施例,如图1所示,可以包括如下步骤:

步骤s1、利用初始爬虫规则爬取页面的内容实体;

这里所称设定初始爬虫规则是指对某一类别的网络资源进行针对性的规则设定,网页类别的划定则可以在前期预设,例如视频类网站中的网页、购物类网站中的网页、新闻类网站中的网页等等。不同的页面类别由于功能具有差异性,大概率上具有不同的页面布局,而相同类型的网页则具有相似性较高的内容布局,因此本实施例所称初始爬虫规则是针对某一类网页而言,其他类别的网页均以此类推,本发明不再赘述。

具体地获取初始爬虫规则的方式可以是基于页面中的至少一个特定目标,设定针对该特定目标的初始爬虫规则,这里所述特定目标可以是按照页面的实际内容板块或者细分种类而定,例如针对视频网页,特定目标可以包括但不限于标题、简介、作者等,当然,不同的目标也具有各自相应的规则,即是所述初始爬虫规则可以理解为由至少一个“目标规则”汇聚而成。

关于爬取方式,则可以是根据前述初始爬虫规则,按预定周期,例如每隔30分钟或1小时或2小时等,即由预先设置的爬虫程序依照初始爬虫规则从页面中爬取到相应于各特定目标下的内容实体,这里需指出三点,其一、本实施例不对待爬取的页面的数量进行限定;其二、不对一个页面下的特定目标的数量进行限定;其三、本发明不对所称内容实体、下文中的实体样本等进行形式限定,可以是文字、符号、代码等任何网页中的内容形式。

步骤s2、根据实体样本与内容实体之间的一致关系,判定是否需要进行规则更新;

这里所称实体样本可以是在爬取前为特定目标下的待爬取的内容预先设置的实体样本,也可以是以首次根据初始爬虫规则爬取到的特定目标下的内容实体作为该实体样本,但无论采用何种方式获得实体样本,实体样本皆是针对各网页中的至少一个特定目标,例如要分别爬取五个视频网页中的标题、简介、作者,此三个特定目标时,则需要制定十五个实体样本,当然也可以理解为一个网页对应一个样本,该一个样本中包括三个特定的目标样本。在实际操作中,本步骤还可以包括对特定目标下的内容实体的监控,据此本发明还提供了一种优选的监控方法的实施例,如图2所示,可以包括如下步骤:

步骤s201、实时监测内容实体与实体样本是否一致;

判断爬取到的内容实体与实体样本二者是否一致,可以从不同维度,例如内容实体所在位置或者内容实体的字符本身等维度进行一一匹配。例如可以是将首次之后的每一次根据初始爬虫规则爬取到的内容实体,与首次前述实体样本进行一个维度或多个维度的匹配,以此确定二者是否一致。

步骤s202、当监测到出现二者不一致的页面的数量超过预设阈值时,则判定需要进行规则更新。

在本步骤中本发明强调的是,内容实体发生变化是确定规则更新与否的时机条件,即当确定内容实体发生变化,则进入到后续的规则更新步骤。由此可见,内容实体与实体样本不一致(即爬取到的内容实体发生变化)并不是指一旦有任何内容实体发生任何变化,就需要进入到后续步骤,本领域技术人员可以理解的是,该过程包含一定的限定条件,即当爬取到的某个特定目标的内容实体与相应的实体样本出现不一致时,同时此特定目标出现不一致的页面数量(或占比)超过一个预设标准才确定“内容实体发生变化”,例如本次爬取中特定目标标题的内容实体不一致的网页数量超过50%,则判定为本发明所称内容实体与实体样本不一致。

接续前文,若确定需要进行规则更新,则执行步骤s3、根据实体样本以及内容实体发生变化的页面信息,更新初始爬虫规则。

在本步骤中本发明提出对于规则的更新不依靠人为监控,而是基于前述实体样本以及当前爬取到的内容实体发生变化的页面信息,进行规则的更新操作,例如下述一种优选的具体方案,如图3所示,可以包括如下步骤:

步骤s31、在与实体样本相应的页面中,获取与实体样本一致的目标实体;

本步骤是将由前述步骤确定的“内容实体与实体样本不一致”的页面进行全部内容信息(例如源代码)获取后,将前述实体样本作为依据,在当前页面中查找一致的内容作为所称目标实体,例如针对某页面中标题的实体样本是“相声有新人”,那么本步骤即是在内容实体与实体样本不一致的页面中查找到“相声有新人”,在实际操作中,有可能在当前网页中获取到一个相声有新人或者分别位于网页的不同位置上的多个“相声有新人”,此种情形则由本发明下述步骤继续实施;如若在当前网页中没有获取到“相声有新人”,则该网页不参与后续规则更新的操作。

步骤s32、确定目标实体在本页面中的位置信息;

在获取到上述目标实体后,本发明提出要确定该目标实体在网页中的位置表示,也即是后续步骤中将以该目标实体的位置信息作为新规则的制定基础,为了确保新规则的有效性和针对性,优选由目标实体在本页面中的唯一位置表示作为新规则的制定基础,也即是当在页面中获取到并不唯一的结果时,可以认为位置信息不明确,具体如何获取该位置信息,参见图4所示的实施例,包括如下步骤:

步骤s321、将目标实体的上层元素作为定位条件,在本页面中获取能够匹配该定位条件的结果;

步骤s322、直至所述目标实体是获取到的唯一结果时,基于当前的定位条件确定位置信息。

举例而言,在当前的页面中获取到了目标实体为相声有新人:

<span>

<a>

相声有新人

</a>

</span>

其中诸如示例中的<span></span><a></a>等皆为“相声有新人”的上层元素,而其他实体中也可能包含相同的一种或多种上层元素,因此,本实施例即是利用该目标实体的上层元素在本页面中校验是否仅能定位到唯一的所称目标实体,如果利用一种或多种上层元素最终定位到的结果只有“相声有新人”,那么即可以利用该一种或多种上层元素确定所称位置信息。

在具体实施时,可以进一步参考下述较佳的实施例,如图5所示:

步骤s3211、获取目标实体之上的第一层元素;

步骤s3212、判断第一层元素是否包含特定属性信息;

若是,则执行步骤s3213、利用第一层元素作为定位条件;

若否,则执行步骤s3214、获取目标实体之上的第二层元素,并判断第二层元素是否包含特定属性信息,以此方式直至获取到任一上层元素中包含特定属性信息后,将所有已获取到的上层元素作为定位条件。

本步骤中先以内容实体的上一层开始,即先获取到示例中的<a></a>,接着判断<a></a>是否具有可以描述规则的特定的属性信息,例如id(唯一标识符),class(文本样式类型),name(文本标签名字)以及自定义属性等,本领域技术人员可以理解的是,当一个元素具备上述信息时,那么相应的规则则可以据此而定,因而,当包含所述特定属性信息时即可利用<a></a>及其特定属性信息作为所称定位条件,在页面中进行全面检索匹配结果;如果<a></a>不符合作为本实施例所称定位条件,则由再上一层,从内容实体而言即第二层元素中,判定是否包含特定属性信息,以示例而言,本步骤需查看<span></span>的属性信息,以此类推,如果<span></span>包含所称特定属性信息,则利用<span></span><a></a>在内容实体发生变化的当前页面信息中查找匹配结果;如果<span></span>也不包含特定属性信息,则再向更上层元素进行同样的查询操作,直到获取到包含特定属性信息的元素,并综合该元素之下的所有层元素,在页面中进行全面检索匹配结果。

此外,在上述实施例基础上还可以进一步考虑当获取到多个结果时的处理方案,如图6所示:

步骤s3221、判断基于当前层元素所获取到的结果是否为多个;

若是,则执行步骤s3222、获取当前层元素的上一层元素重新确定所述定位条件,并重新在本页面中获取能够匹配该定位条件的结果;

若否,则执行步骤s3223、确定所述目标实体是获取到的唯一结果。

如果按照上述定位条件获取到的结果为多个,则认为该元素条件不合适,因而可以借鉴上述实施例,从当前层元素的上一层再按照前述确定定位条件的步骤重新获取新的定位条件,并基于新的定位条件再次在页面中进行全面检索匹配结果,直至获取到的结果只有所称目标实体。

接续前文步骤s32,步骤s33、从不同页面各自的位置信息中确定目标位置信息;

前文提及通常需要爬取多个页面中的内容实体,因而当需要更新规则时,通常是有一定数量或比例的网页发生了内容实体变化,所以由前述各步骤能够获得的是多个不同网页各自的位置信息,并可以从中确定用于后续更新规则的目标位置信息。具体在实际操作中,可以如图7所示,包括如下步骤:

步骤s331、将一个页面中针对同一个实体样本的位置信息汇总为集合;

步骤s332、求取全部页面的所述集合的交集;

步骤s333、以交集中的位置信息作为目标位置信息。

前文提及,利用实体样本有可能在网页中获取到多个目标实体,由前述步骤,每一个相应于该实体样本的目标实体均可以得到一个唯一的位置关系表示,即一个页面种可能最终包含了一个或多个位置信息,因此,本发明提出将该页面中的一个或多个位置信息汇总为集合。同时,在不同的页面同样可以通过相似的方式得到各自的集合,因此,只需确定各集合的交集,也即是在各页面中均存在的相同的位置关系表示。这里需要说明的是,交集中的位置表示取决于实体样本,因而一个交集对应于一个实体样本,而交集内则可能涵盖了一个或多个位置信息,那么在实际操作中,则可以利用交集中任一个位置信息作为目标位置信息,也可以设定某些标准进行位置信息的选取,从而确定针对该实体样本的目标位置信息。

接续前文,最后执行步骤s34、利用目标位置信息更新初始爬虫规则。

当目标位置信息确定后,则可以将该目标位置信息替换初始爬虫规则中相应于某个实体样本的原始规则,以此方式更新初始爬虫规则;本领域技术人员可以理解,前文中的方法适用于同类型的多个网页中的多个特定目标,也因此所称目标位置信息为多个,那么在规则更新时是将所有需要更新的原始规则进行替换,并以此重新配置一个全面的爬虫程序。

本发明进行的是将爬虫规则自动更新与当前网页内容以及原始规则相关联,具体是利用初始爬虫规则爬取页面的内容实体;根据实体样本与所述内容实体之间的一致关系,判定是否需要进行规则更新;若是,则根据所述实体样本以及所述内容实体发生变化的页面信息,更新所述初始爬虫规则。通过本发明能够根据爬取结果自适应输出更新的爬虫规则,无需人工频繁监控、维护爬虫程序,大大减少人工工作量的同时,可以有效保证爬虫效果的准确性和稳定性。

相应于前述各实施例及优选方案,本发明还提供了一种页面爬虫规则更新系统的实施例,如图8所示,该系统可以包括至少一个用于存储相关指令的存储器以及至少一个与所述存储器连接并用于执行下述各模块的处理器(在其他实施例中一个或多个处理器也可以直接执行相应的步骤动作,而无需通过下述模块执行,例如处理器直接执行页面爬取、监测变化、更新规则等操作):

爬虫模块1,用于利用初始爬虫规则爬取页面的内容实体;

更新判定模块2,用于根据实体样本与所述内容实体之间的一致关系,判定是否需要进行规则更新;

规则更新模块3,用于在所述更新判定模块输出为是时,根据所述实体样本以及所述内容实体发生变化的页面信息,更新所述初始爬虫规则。

进一步地,所述规则更新模块具体包括:

目标实体定位单元,用于在与所述实体样本相应的页面中,获取与所述实体样本一致的目标实体;

位置信息确定单元,用于确定所述目标实体在本页面中的位置信息;

目标位置信息确定单元,用于从不同页面各自的所述位置信息中确定目标位置信息;

规则更新单元,用于利用所述目标位置信息更新所述初始爬虫规则。

进一步地,目标位置信息确定单元具体包括:

汇总子单元,用于将一个页面中针对同一个所述实体样本的所述位置信息汇总为集合;

交集获取单元,用于求取全部页面的所述集合的交集;

目标位置信息确定单元,用于以所述交集中的所述位置信息作为所述目标位置信息。

进一步地,位置信息确定单元具体包括:

定位子单元,用于将所述目标实体的上层元素作为定位条件,在本页面中获取能够匹配该定位条件的结果;

位置信息确定子单元,用于直至所述目标实体是获取到的唯一结果时,基于当前的定位条件确定所述位置信息。

进一步地,定位子单元具体包括:

元素获取第一组件,用于获取所述目标实体之上的第一层元素;

属性信息判定组件,用于判断所述第一层元素是否包含特定属性信息;

定位条件确定组件,用于若属性信息判定组件输出为是,则利用所述第一层元素作为定位条件;

元素获取第二组件,用于若属性信息判定组件输出为否,则获取所述目标实体之上的第二层元素,并判断所述第二层元素是否包含所述特定属性信息,以此方式直至获取到任一上层元素中包含所述特定属性信息后,将所有已获取到的上层元素作为定位条件。

进一步地,位置信息确定单元还包括:

定位结果数量监控子单元,用于判断基于当前层元素所获取到的结果是否为多个;

重定位子单元,用于若定位结果数量监控子单元输出为是,则获取当前层元素的上一层元素重新确定所述定位条件,并重新在本页面中获取能够匹配该定位条件的结果;

定位结果确定单元,用于若定位结果数量监控子单元输出为否,则确定所述目标实体是获取到的唯一结果。

进一步地,所述更新判定模块具体包括:

变化监测单元,用于实时监测所述内容实体与所述实体样本是否一致;

更新判定单元,用于当监测到出现二者不一致的页面的数量超过预设阈值时,则判定需要进行规则更新。

综上所述,本发明进行的是将爬虫规则自动更新与当前网页内容以及原始规则相关联,具体是利用初始爬虫规则爬取页面的内容实体;根据实体样本与所述内容实体之间的一致关系,判定是否需要进行规则更新;若是,则根据所述实体样本以及所述内容实体发生变化的页面信息,更新所述初始爬虫规则。通过本发明能够根据爬取结果自适应输出更新的爬虫规则,无需人工频繁监控、维护爬虫程序,大大减少人工工作量的同时,可以有效保证爬虫效果的准确性和稳定性。

虽然上述系统实施例及优选方案的工作方式以及技术原理皆记载于前文,但仍需指出的是,本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,也可以把它们分成多个子模块或子单元或子组件予以实施。

以及,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,但以上仅为本发明的较佳实施例,需要言明的是,上述实施例及其优选方式所涉及的技术特征,本领域技术人员可以在不脱离、不改变本发明的设计思路以及技术效果的前提下,合理地组合搭配成多种等效方案;因此,本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1