一种适用于多数网站通用采集数据的爬虫系统及方法技术方案

技术编号:28124129 阅读:12 留言:0更新日期:2021-04-19 11:35
本发明专利技术公开了一种适用与多数网站通用采集数据的爬虫系统及方法,它能够避免因为其它解析操作浪费爬取时间,能使爬虫的效率达到最大。该系统包括任务存储和分发模块、爬虫后台和数据存储模块。本发明专利技术的有益效果在于:在整个爬虫系统开发完成后,只需要在添加配置各个网站及其采集规则后,不需要在改动源代码或是重复性编写程序的情况下爬取相对应的数据,减少重复性工作,提高在有新的需求或是网站变动时数据的采集效率,同时提高了系统的可维护性。性。性。

【技术实现步骤摘要】
一种适用于多数网站通用采集数据的爬虫系统及方法


[0001]本专利技术属于网络通信
,具体涉及一种适用于多数网站通用采集数据的爬虫系统及方法。

技术介绍

[0002]目前大部分爬虫都是单一的针对固定网站的爬取,针对待爬取网站数量大,不固定的情况,这种方法会大大增加数据采集爬取的维护成本。现有的各种爬虫系统,根本思路都是对目标网站URL的请求,通过对返回的结果进行解析获取希望得到的数据,数据的请求和解析都是在爬虫内部完成的,同时多个单独爬虫的运行也是多个独立的进程,极大的增大计算机内存的开销。
[0003]现有公开的爬虫方法或爬虫系统有基于负载均衡分布式的、有针对数据采集后实时处理并统一管理的、有对网络爬虫系统构建多任务执行和调度的,还有其他通过网络爬虫动态获取不限定目标的网站数据的,但是大多数爬虫系统对使用人员的要求比较高,所以这样就极大地限制了爬虫的开发、维护和使用效率。

技术实现思路

[0004]本专利技术的目的在于提供一种适用与多数网站通用采集数据的爬虫系统及方法,它能够避免因为其它解析操作浪费爬取时间,能使爬虫的效率达到最大。
[0005]本专利技术的技术方案如下:一种适用于多数网站通用采集数据的爬虫系统,该系统包括任务存储和分发模块、爬虫后台和数据存储模块。
[0006]所述的任务存储和分发模块包括MongoDB数据库和redis数据库,redis数据库用来存放每个爬虫任务起始URL、待爬URL和已经采集数据的去重标识码,MongoDB数据库用来存放目标网站信息、爬取解析规则和网站信息;其中,redis数据库会在爬虫启动后,将从MongoDB数据库中获取到的需要爬取任务存放在自身的待爬队列中,然后逐个分发给空闲的爬虫任务爬取,MongoDB数据库将爬虫爬取时需要的解析规则分发给各个爬虫任务,供爬虫提取需要的数据。
[0007]所述的爬虫后台包括爬取模块、数据存储模块、异常捕获和处理模块;其中,爬取模块负责网站请求和源数据提取,数据存储模块负责把源数据通过整理好的格式存储到数据存储模块,异常捕获和处理模块负责在爬虫运行过程中将可能出现的报错或是其他影响爬虫运行的情况提供解决途径,防止爬虫中断运行。
[0008]所述的数据存储服务器包含solr数据库和MongoDB数据库,用来存储爬取到的数据内容,其中不同的数据库负责存储不同格式的数据和提供不同的访问形式,如文本信息数据和图片类型数据都将分开存储,数据内容的快速全文检索等。
[0009]一种适用于多数网站通用采集数据的爬虫的方法,包括如下步骤:
[0010]步骤1:通过可视化配置界面将需要爬取的网站的起始URL和网站信息存入爬虫任务存储和分发模块中的MongoDB数据库中,同时将每个网站对应的源码解析规则也存入
MongoDB数据库;
[0011]步骤2:启动爬虫的起始文件,将起始URL从MongoDB数据库中取出并存入redis数据库自身的待爬队列,等待分发给空闲的爬虫任务爬取;同时启动创建进程池的方法,创建本机可运行最大、最优任务量的进程队列,形成多任务爬虫的后台系统;然后通过进程的任务分发机制分别将URL分配给不同的已启动空闲任务进行爬取,使每个创建的进程执行一个网站爬取任务;
[0012]步骤3:每个任务的爬虫在执行时通过线程池创建的逻辑方法,构建每个任务的自己独立的线程池,形成多任务、多线程爬取模式,并等待每个任务主线程中可以获取到的子网页URL进入线程队列;
[0013]步骤4:通过使用每个网站的唯一标识符定位,获取到在步骤1中配置好的源码解析规则中提取子网页URL的解析规则,动态获取网站内符合采集规则的URL,然后将提取到的URL放入redis数据库的待爬队列中,等待空闲爬虫任务的爬取;
[0014]步骤5:网页请求并获取响应结果;
[0015]步骤6:使用异常捕获和处理模块,在爬虫进行数据请求或是解析的过程中,如果遇到程序报错的情况,自动将遇到的错误进行接收并将日志记录在系统日志中,继续执行其他的功能;如果运行正常,则跳过异常处理模块,一直执行系统的请求和解析等功能,如此,则可以防止爬虫系统的中断;
[0016]步骤7:数据存储模块实时将爬取的网页源码存入redis数据库中,并将本次请求的URL编码后保存到去重队列中,用以防止再次爬取时的重复爬取;
[0017]步骤8:当一个网站爬取结束后,先关闭本次任务,然后判断待爬队列中是否为空,如果为空,在所有爬取任务爬取完毕后自动启动新一轮网站爬取,如果不为空,再启动新的爬取任务爬取其它待爬网站,重复执行步骤3到步骤8的过程;
[0018]步骤9:新一轮网站爬取时,会通过步骤1中设定好的网站信息中取得该网站的爬取范围和步骤7中保存在redis数据库去重队列中的信息排除太多久远的历史数据及已经爬取过的网页数据。
[0019]所述的步骤1中的MongoDB数据库是一个介于关系数据库和非关系数据库之间的基于分布式文件存储的数据库,其存储的数据结构由键值(key=>value)对组成,用来存储待爬的网站URL和各个网站解析规则,具有很高的扩展性和可读性。
[0020]所述的步骤4中通过使用每个网站的唯一标识符定位,获取到在步骤1中配置好的源码解析规则中提取子网页URL的解析规则。
[0021]本专利技术的有益效果在于:在整个爬虫系统开发完成(即设定完成统一的爬取逻辑)后,只需要在添加配置各个网站及其采集规则后,不需要在改动源代码或是重复性编写程序的情况下爬取相对应的数据,减少重复性工作,提高在有新的需求或是网站变动时数据的采集效率,同时提高了系统的可维护性。
附图说明
[0022]图1为本专利技术所提供的一种适用与多数网站通用采集数据的爬虫方法流程图。
具体实施方式
[0023]下面结合附图及具体实施例对本专利技术作进一步详细说明。
[0024]一种适用于多数网站通用采集数据的爬虫系统,该系统包括:任务存储和分发模块、爬虫后台、数据存储模块。
[0025]所述任务存储和分发模块包括MongoDB数据库和redis数据库,redis数据库用来存放每个爬虫任务起始URL、待爬URL和已经采集数据的去重标识码,MongoDB数据库用来存放目标网站信息、爬取解析规则和网站信息;其中,redis数据库会在爬虫启动后,将从MongoDB数据库中获取到的需要爬取任务存放在自身的待爬队列中,然后逐个分发给空闲的爬虫任务爬取,MongoDB数据库将爬虫爬取时需要的解析规则分发给各个爬虫任务,供爬虫提取需要的数据。
[0026]所述的爬虫后台包含爬取模块、数据存储模块、异常捕获和处理模块;其中,爬取模块负责网站请求和源数据提取,数据存储模块负责把源数据通过整理好的格式存储到数据存储模块,异常捕获和处理模块负责在爬虫运行过程中将可能出现的报错或是其他影响爬虫运行的情况提供解决途径,防止爬虫中断运行。
[0027]所述的数据存储模块包含sol本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种适用于多数网站通用采集数据的爬虫系统,其特征在于:该系统包括任务存储和分发模块、爬虫后台和数据存储模块。2.如权利要求1所述的一种适用于多数网站通用采集数据的爬虫系统,其特征在于:所述的任务存储和分发模块包括MongoDB数据库和redis数据库,MongoDB数据库用来存放目标网站信息、爬取解析规则和网站信息;其中,redis数据库会在爬虫启动后,将从MongoDB数据库中获取到的需要爬取任务存放在自身的待爬队列中,然后逐个分发给空闲的爬虫任务爬取,MongoDB数据库将爬虫爬取时需要的解析规则分发给各个爬虫任务,供爬虫提取需要的数据。3.如权利要求1所述的一种适用于多数网站通用采集数据的爬虫系统,其特征在于:所述的爬虫后台包括爬取模块、数据存储模块、异常捕获和处理模块;其中,爬取模块负责网站请求和源数据提取,数据存储模块负责把源数据通过整理好的格式存储到数据存储模块,异常捕获和处理模块负责在爬虫运行过程中将可能出现的报错或是其他影响爬虫运行的情况提供解决途径,防止爬虫中断运行。4.如权利要求1所述的一种适用于多数网站通用采集数据的爬虫系统,其特征在于:所述的数据存储服务器包含solr数据库和MongoDB数据库,用来存储爬取到的数据内容,其中不同的数据库负责存储不同格式的数据和提供不同的访问形式,如文本信息数据和图片类型数据都将分开存储,数据内容的快速全文检索等。5.如权利要求1

4任一所述的一种适用于多数网站通用采集数据的爬虫系统的方法,其特征在于,包括如下步骤:步骤1:通过可视化配置界面将需要爬取的网站的起始URL和网站信息存入爬虫任务存储和分发模块中的MongoDB数据库中,同时将每个网站对应的源码解析规则也存入MongoDB数据库;步骤2:启动爬虫的起始文件,将起始URL从MongoDB数据库中取出并存入redis数据库自身的待爬队列,等待分发给空闲的爬虫任务爬取;同时启动创建进程池的方法,创建本机可运行最大、最优任务量的进程队列,形成多任务爬虫的后台系统;然后通过进程的任务分发机制分别将URL分配给不同的已启动空闲任...

【专利技术属性】
技术研发人员:王勇张可新游若平
申请(专利权)人:北京华如慧云数据科技有限公司
类型:发明
国别省市:

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

1