爬虫系统技术方案

技术编号:13567314 阅读:93 留言:0更新日期:2016-08-20 23:37
本发明专利技术实施例提供一种爬虫系统,包括:网页分析器,用于对网页进行分析,并从DNS服务器获取网页的IP地址,生成爬取任务;任务模块,用于将所述爬取任务存储到任务队列;以及爬虫模块,用于从所述任务队列中获取所述爬取任务,爬取网页数据。本发明专利技术实施例的爬虫系统和爬虫方法,在网页分析中执行DNS查询,避免DNS查询在爬取过程中造成管道阻塞,提高爬虫效率。

【技术实现步骤摘要】

本专利技术涉及网页搜索技术,尤其涉及一种网页爬虫系统及方法。
技术介绍
网络爬虫是一个自动提取网页的程序,它为搜索引擎从互联网(internet)上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的统一资源定位符(URL)开始,获得初始网页上的URL,然后启动爬虫模块抓取网页,在网页抓取过程中,不断从当前页面上抽取新的URL放入队列并继续进行分析,如此周而复始,直到遍历完整个互联网后者满足系统的一定停止条件时停止。由于爬虫模块在抓取网页数据时,从URL地址,因此需要通过URL获取网页的IP地址以及访问端口,在此过程中,由于非法URL地址可能导致爬虫模块长时间阻塞,导致爬取任务停止,影响整个系统的爬取效率。
技术实现思路
有鉴于此,本专利技术提供一种防止DNS阻塞的爬虫系统和爬虫方法,以解决上述问题。根据本专利技术的一个方面,提供一种爬虫系统,包括:网页分析器,用于对网页进行分析,并从DNS服务器获取网页的IP地址,生成爬取任务;任务模块,用于将所述爬取任务存储到任务队列;以及爬虫模块,用于从所述任务队列中获取所述爬取任务,爬取网页数据。优选地,所述网页分析器和所述爬虫模块在不同的进程或线程中执行。优选地,所述爬虫分析器在本地缓存网页URL地址和IP地址的映射关系,以及将非法域名保存到黑名单。优选地,所述爬虫模块包括:第一调度单元,用于从所述任务队列
获取所述爬取任务,分发到多个工作队列;爬取单元,用于从所述工作队列中获取所述爬取任务,根据所述爬取任务从WEB服务器爬取所述网页数据;配置单元,用于根据配置文件配置所述第一调度单元和爬取单元。优选地,所述任务队列和工作队列通过REDIS数据库存储。优选地,所述配置单元启动多个线程执行所述第一调度单元和所述爬取单元,一个所述爬取单元的线程对应一个所述工作队列。优选地,所述网页分析器包括:第二调度模块,用于获取所述网页数据,并根据所述网页数据提取网页URL;DNS工作模块,用于根据所述网页URL从所述DNS服务器获取IP地址,并生成所述爬取任务;推送模块,用于将所述爬取任务存储到所述任务模块。优选地,所述爬取任务包括IP地址、URL地址、爬取深度。根据本专利技术的另一个方面,提供一种爬虫方法,包括:网页分析步骤:对网页进行分析,并从DNS服务器获取网页的IP地址,生成爬取任务,并将所述爬取任务存储到任务队列;以及爬取步骤:从所述任务队列中获取所述爬取任务,爬取网页数据。优选地,所述网页分析步骤和所述爬取步骤在不同的进程或线程中执行。优选地,还包括:在本地缓存网页URL地址和IP地址的映射关系,以及将非法域名保存到黑名单。优选地,所述任务队列和工作队列通过REDIS数据库存储。优选地,所述爬取步骤启动多个线程爬取网页数据。优选地,所述爬取任务包括IP地址、URL地址、爬取深度。本专利技术实施例提供一种爬虫系统,包括:网页分析器,用于对网页进行分析,并从DNS服务器获取网页的IP地址,生成爬取任务;任务模块,用于将所述爬取任务存储到任务队列;以及爬虫模块,用于从所述任务队列中获取所述爬取任务,爬取网页数据。本专利技术实施例的爬虫系统和爬虫方法,在网页分析中执行DNS查询,避免DNS查询在爬取过程中造成管道阻塞,提高爬虫效率。附图说明通过参照以下附图对本专利技术实施例的描述,本专利技术的上述以及其它目的、特征和优点将更为清楚,在附图中:图1是本专利技术实施例的爬虫系统的部署图;图2是本专利技术实施例的爬虫系统的时序图;图3是本专利技术实施中的网页分析器的时序图;图4是本专利技术实施例的爬虫模块的配置单元的流程图;图5是本专利技术实施例的爬虫模块的第一调度单元的流程图;图6是本专利技术实施例的爬虫模块的爬虫单元的流程图;图7是本专利技术实施例的爬虫模块的爬虫单元中接收数据的流程图。具体实施方式以下基于实施例对本专利技术进行描述,但是本专利技术并不仅仅限于这些实施例。在下文对本专利技术的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本专利技术。为了避免混淆本专利技术的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。图1是本专利技术实施例的爬虫系统的部署图。如图1所示,爬虫服务器、REDIS服务器和WEB服务器协同工作,完成网页数据的爬取。其中,REDIS服务器指安装REDIS数据存储管理系统的服务器,用于存储爬取任务、记录已爬网页等信息。爬虫服务器负责从WEB服务器爬取网页,并将网页存储在本地;再从已爬取网页中抽取有效URL放入REDIS任务队列。WEB服务器包括各个互联网服务提供商提供的网页服务器,如门户网站:腾讯、新浪、凤凰网等。REDIS服务器只是一种存储爬取任务的存储示范,对本领域的技术人员来说,其他存储方式也能达到相同的效果,例如,采用MQ存储消息队列,或将爬取任务存储到ORACLE数据库,但是REDIS数据库在高并发性的数据存储和检索方面具有优势。本专利技术实施例所述的爬虫系统部署在爬虫服务器上。根据功能划分,这里将爬虫系统包括:网页分析器、任务模块和爬虫模块,网页分析器对网页进行分析,并从DNS服务器获取网页的IP地址,生成爬取任务;
任务模块将爬取任务存储到REDIS服务器上的任务队列;爬虫模块从任务队列中获取爬取任务,爬取网页数据。在一个优选的实施例中,网页分析器和爬虫模块分别在两个不同的进程或线程中工作,通过任务模块进行消息传递。这样做的益处是异步操作避免阻塞。爬虫模块按功能划分包括第一调度单元、爬虫单元和配置单元。第一调度负责从任务队列获取爬取任务,分发到多个工作队列;爬取单元从工作队列中获取爬取任务,根据爬取任务从WEB服务器爬取网页数据;配置单元根据配置文件配置第一调度单元和爬取单元的所需环境变量。在爬虫模块启动时,首先调用配置模块对系统资源进行初始化,创建执行第一调度单元和爬取单元的线程池,并为每个爬取线程申请一个工作队列。第一调度线程、爬取线程、网页分析器、DNS服务器和WEB服务器的交互关系如图2所示。在图2中,网页分析器首先对网页数据进行分析,生成爬取任务,通过任务模块的任务进程存储到REDIS队列。第一调度线程从REDIS队列获取任务,分配给每个爬取线程对应的工作队列,每个爬取线程定时从对应的工作队列中读取任务,从WEB服务器上获取网页数据,并从网页数据中提取URL地址、IP、端口、摘要等信息,形成网页数据的索引文件,并将网页数据存储到磁盘上。网页分析器再继续对已经爬取到本地的网页数据分析,获取网页中未爬取的相关URL地址,生成新的爬取任务存放到REDIS服务器上的任务队列中。图3示出了本专利技术实施例中的网页分析器的时序图。网页分析器包括第二调度模块、DNS工作模块和推送模块。第二调度模块获取网页数据,并根据网页数据提取网页URL。DNS工作模块根据网页URL从DNS服务器获取IP地址,并生成爬取任务。推送模块将爬取任务推送到任务模块。图3中的第二调度线程执行第二调度模块的功能,DNS工作线程执行DNS工作模块的功能,推送线程执行推送模块的功能。第二调度线程首先从本地磁盘读取网页数据,将未爬取的URL提交给DNS工作线程,DNS工作线程从DNS服务器查询获得URL地址和IP地址的映射关系,并发给推送线程,本文档来自技高网
...

【技术保护点】
一种爬虫系统,其特征在于,包括:网页分析器,用于对网页进行分析,并从DNS服务器获取网页的IP地址,生成爬取任务;任务模块,用于将所述爬取任务存储到任务队列;以及爬虫模块,用于从所述任务模块中获取所述爬取任务,爬取网页数据。

【技术特征摘要】
1.一种爬虫系统,其特征在于,包括:网页分析器,用于对网页进行分析,并从DNS服务器获取网页的IP地址,生成爬取任务;任务模块,用于将所述爬取任务存储到任务队列;以及爬虫模块,用于从所述任务模块中获取所述爬取任务,爬取网页数据。2.根据权利要求1所述的爬虫系统,其特征在于,所述网页分析器和所述爬虫模块在不同的进程或线程中执行。3.根据权利要求2所述的爬虫系统,其特征在于,所述爬虫分析器在本地缓存网页URL地址和IP地址的映射关系,以及将非法域名保存到黑名单。4.根据权利要求1所述的爬虫系统,其特征在于,所述爬虫模块包括:第一调度单元,用于从所述任务队列获取所述爬取任务,分发到多个工作队列;爬取单元,用于从所述工作队列中获取所述爬取任务,根据所述爬取任务从WEB服务器爬取所述网页数据;配置单元,用于根据配置文件配置所述第一调度单元和爬取单元。5.根据权利要求4所述的爬虫系统,其特征在于,所述任务队列和工作队列通过REDIS数据库存储。6.根据权利要求4所述的爬虫系统,其特征在于,所述配置单元启动多个线程执行所述第一调度单元和所述爬取单元,一个所述爬取单元的线程对应一个所述工作队列。7.根据权利要求1所述的爬虫系统,其...

【专利技术属性】
技术研发人员:邹奇峰
申请(专利权)人:乐视网信息技术北京股份有限公司
类型:发明
国别省市:北京;11

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

1