一种基于动态的网页抓取方法及装置制造方法及图纸

技术编号:13917652 阅读:57 留言:0更新日期:2016-10-27 16:00
本发明专利技术公开了一种基于动态的网页抓取方法,包括如下步骤:设置至少两个队列,爬取待抓取网页的url及其优先级并存储至所述至少两个队列,根据所述至少两个队列存储的url的优先权进行调度;接收调度的所述至少两个队列中的元素,获取待解析的所述元素的url;根据调度的所述队列元素的url进行解析获取网页内容。本发明专利技术可以同时对抓取解析的流程和link库的url按照优先级进行调度,保证优先级高的网页优先爬取;通过至少两个队列的调度提高网页出队和入队效率,时间复杂度为logN,大大提高网页的爬取效率。

【技术实现步骤摘要】

本专利技术属于互联网
,具体而言,涉及一种基于动态的网页抓取方法及装置
技术介绍
网络爬虫对海量的互联网网页爬取的过程中面临的一个重要问题就是网页的重复抓取问题。为避免网页重复抓取目标不同,在面对一些需要重复抓取的网页(例如快速更新的新闻资讯类网页、定时更新的网页及需实时抓取需求的网页)信息时,需要根据网页的优先级进行网页的抓取。例如,聚焦爬虫是一种面向特定主题的爬虫系统,爬取过程中会过滤与主题无关的url,并调度待执行url的抓取。由于是面对特定主题(视频、新闻),可能存在大量的网页重复抓取需求。比如一个新闻聚合类网页,可能就需要每隔4个小时重复爬取一次,对于一个网络小说详情页,需要每天重复爬取一次,以便较快的获取更新内容。可以看出,重复爬取网页的时间频率不同,优先级也不同,需要根据网页优先级调度抓取。现有的网页抓取过程中存在如下难点:1、需要快速的调度网页并抓取,充分利用抓取能力爬虫的通用调度策略是利用网页数据库(link库)存储待抓取url,抓取过程中需要从link库选择出优先级较高的url并执行抓取,并依次进行。当网页数量巨大达到百万级别时,每次选择待抓取url列表的步骤耗时,且此过程中无法抓取只能等待,浪费了抓取能力;2、需要动态的调度网页的重复抓取网页的重复抓取需求不仅来源于link库,也有抓取解析过程中提取的url。当动态产生的url优先级较高时,如果采用上述从link库选择url的静态调度策略时,无法满足按优先级抓取的需求。
技术实现思路
为解决现有网页抓取过程面临的网页重复抓取、抓取时间复杂度高,且无法按照解析过程中获取的网页的优先级高进行抓取的技术问题,本专利技术通过预设的优先级不同的队列实现调度网页数据库,并同时实现根据解析过程中获取的网页的优先级进行抓取,从而提高网页抓取的效率的目的。本专利技术提供了一种基于动态的网页抓取方法,包括如下步骤:设置至少两个队列,爬取待抓取网页的url及其优先级并存储至所述至少两个队列,根据所述至少两个队列存储的url的优先权进行调度;接收调度的所述至少两个队列中的元素,获取待解析的所述元素的url;根据调度的所述队列元素的url进行解析获取网页内容。进一步,所述设置至少两个队列,加载网页数据库获取待抓取网页的url和优先级并存储至所述队列包括将所述队列的数量设为2,并设置每个队列的最大堆和最小堆,每个队列包括N个元素,每个元素包括网页的url及其优先权,每个队列的优先级不同;加载网页数据库获取待抓取网页的url和优先级,根据所述最大堆和所述最小堆获取每个队列中元素的最大优先级和最小优先级;将待抓取网页的优先级与每个队列的最大优先级和最小优先级进行比较,将所述待抓取网页的url及其优先级存储至最大优先级不小于所述待抓取网页的优先级且最小优先级不大于所述待抓取网页的优先级的队列。更进一步,所述待抓取网页的优先级与每个队列的最大优先级和最小优先级进行比较,将所述待抓取网页的url及其优先级存储至最大优先级不小于所述待抓取网页的优先级且最小优先级不大于所述待抓取网页的优先级的队列还包括判断所述两个队列中元素数量是否均为0;如果所述至少两个队列中元素数量均为0,则将待抓取网页的url及其优先级存储至优先级最高的队列。更进一步,判断优先级较高的队列中元素的数量是否为0,且优先级较低的队列中元素的数量不为0;如果优先级较高的队列中元素的数量为0,且优先级较低的队列中元素的数量不为0,判断所述待抓取网页的优先级是否大于优先级较低的队列中优先级最大的元素;所述待抓取网页的优先级是否不大于优先级较低的队列中优先级最大的元素,则将所述待抓取网页的url及其优先级存储至优先级较高的队列。更进一步,判断优先级较高的队列中元素的数量是否不为0,且优先级较低的队列中元素的数量为0;如果判断优先级较高的队列中元素的数量为0,且优先级交底的队列中元素的数量不为0,则将所述所述待抓取网页的url及其优先级存储至优先级较高的队列;判断将所述待抓取网页的url及其优先级存储至优先级较高的队列后,返回值是否不为空,是则将所述待抓取网页的url及其优先级存储至优先级较低的队列。更进一步,判断优先级较高的队列中元素的数量是否不为0,且优先级较低的队列中元素的数量不为0;如果判断优先级较高的队列中元素的数量不为0,且优先级较低的队列中元素的数量不为0,则将所述待抓取网页的url及其优先级存储至优先级较高的队列;判断将所述待抓取网页的url及其优先级存储至优先级较高的队列后,返回值是否不为空,是则将所述待抓取网页的url及其优先级存储至优先级较低的队列;如果将所述待抓取网页的url及其优先级存储至优先级较低的队列后,返回值是否不为空,是则将返回值写入所述网页数据库。进一步,所述方法还包括计算解析获取网页内容的网页的url的优先级,将解析获取网页内容的网页的url及其优先级存储至预设的队列。本专利技术还提供了一种基于动态的网页抓取装置,包括调度器、抓起器、解析器,其中所述调度器,用于设置至少两个队列,加载网页数据库获取待抓取网页的url和优先级并存储至所述队列;所述抓取器,用于接收调度的所述至少两个队列中的元素,获取待解析的所述元素的url;所述解析器,用于根据调度的所述队列元素的url进行解析获取网页内容。进一步,所述调度器包括队列设置模块、查询模块、处理模块,其中,所述队列设置模块,用于将所述队列的数量设为2,并设置每个队列的最大堆和最小堆,每个队列包括N个元素,每个元素包括网页的url及其优先权,每个队列的优先级不同;所述查询模块,用于加载网页数据库获取待抓取网页的url和优先级,根据所述最大堆和所述最小堆获取每个队列中元素的最大优先级和最小优先级;所述处理模块,用于将待抓取网页的优先级与每个队列的最大优先级和最小优先级进行比较,将所述待抓取网页的url及其优先级存储至最大优先级不小于所述待抓取网页的优先级且最小优先级不大于所述待抓取网页的优先级的队列。进一步,所述解析器,还用于计算所述解析获取网页内容的网页的url的优先级,将解析获取网页内容的网页的url及其优先级存储至预设的队列。综上,本专利技术可以同时对抓取解析流程和link库的url按照优先级进行调度,保证优先级高的网页优先爬取;通过至少两个队列的调度提高网页出队和入队效率,时间复杂度都为O,大大提高网页的爬取效率。附图说明图1为本专利技术所述的基于动态的网页抓取方法一个实施例的流程示意图;图2为本专利技术所述的基于动态的网页抓取方法中入队的一个实施例的的流程示意图;图3为本专利技术所述的基于动态的网页抓取方法中出队的一个实施例的的流程示意图;图4为本专利技术所述的基于动态的网页抓取方法另一个实施例的流程示意图;图5为本专利技术所述的基于动态的网页抓取装置的框图结构示意图。具体实施方式下面通过具体的实施例并结合附图对本专利技术做进一步的详细描述。现有的网页抓取一般是通过调度策略实现对link库的抓取,抓取过程按照所述网页数据库中网页的优先级进行,然而当网页数量巨大达到百万级别时,每次选择待抓取url列表的步骤过程中抓取器只能等待,浪费了抓取器的抓取能力。为了解决上述问题,本专利技术提供了一种基于动态的网页抓取方法。如图1所示,所述方法包括如下步骤:S101、设本文档来自技高网...

【技术保护点】
一种基于动态的网页抓取方法,其特征在于,包括如下步骤:设置至少两个队列,爬取待抓取网页的url及其优先级并存储至所述至少两个队列,根据所述至少两个队列存储的url的优先权进行调度;接收调度的所述至少两个队列中的元素,获取待解析的所述元素的url;根据调度的所述队列元素的url进行解析获取网页内容。

【技术特征摘要】
1.一种基于动态的网页抓取方法,其特征在于,包括如下步骤:设置至少两个队列,爬取待抓取网页的url及其优先级并存储至所述至少两个队列,根据所述至少两个队列存储的url的优先权进行调度;接收调度的所述至少两个队列中的元素,获取待解析的所述元素的url;根据调度的所述队列元素的url进行解析获取网页内容。2.根据权利要求1所述的基于动态的网页抓取方法,其特征在于,所述设置至少两个队列,加载网页数据库获取待抓取网页的url和优先级并存储至所述队列包括将所述队列的数量设为2,并设置每个队列的最大堆和最小堆,每个队列包括N个元素,每个元素包括网页的url及其优先权,每个队列的优先级不同;加载网页数据库获取待抓取网页的url和优先级,根据所述最大堆和所述最小堆获取每个队列中元素的最大优先级和最小优先级;将待抓取网页的优先级与每个队列的最大优先级和最小优先级进行比较,将所述待抓取网页的url及其优先级存储至最大优先级不小于所述待抓取网页的优先级且最小优先级不大于所述待抓取网页的优先级的队列。3.根据权利要求2所述的基于动态的网页抓取方法,其特征在于,所述待抓取网页的优先级与每个队列的最大优先级和最小优先级进行比较,将所述待抓取网页的url及其优先级存储至最大优先级不小于所述待抓取网页的优先级且最小优先级不大于所述待抓取网页的优先级的队列还包括判断所述两个队列中元素数量是否均为0;如果所述至少两个队列中元素数量均为0,则将待抓取网页的url及其优先级存储至优先级最高的队列。4.根据权利要求2所述的基于动态的网页抓取方法,其特征在于,判断优先级较高的队列中元素的数量是否为0,且优先级较低的队列中元素的数量不为0;如果优先级较高的队列中元素的数量为0,且优先级较低的队列中元素的数量不为0,判断所述待抓取网页的优先级是否大于优先级较低的队列中优先级最大的元素;所述待抓取网页的优先级是否不大于优先级较低的队列中优先级最大的元素,则将所述待抓取网页的url及其优先级存储至优先级较高的队列。5.根据权利要求2所述的基于动态的网页抓取方法,其特征在于,判断优先级较高的队列中元素的数量是否不为0,且优先级较低的队列中元素的数量为0;如果判断优先级较高的队列中元素的数量为0,且优先级交底的队列中元素的数量不为0,则将所述所述待抓取网页的url及其优先级存储至优先级较高的队列;判断将所述待...

【专利技术属性】
技术研发人员:文辉
申请(专利权)人:达而观信息科技上海有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1