CN108875091B - 一种统一管理的分布式网络爬虫系统 - Google Patents

一种统一管理的分布式网络爬虫系统 Download PDF

Info

Publication number
CN108875091B
CN108875091B CN201810926199.9A CN201810926199A CN108875091B CN 108875091 B CN108875091 B CN 108875091B CN 201810926199 A CN201810926199 A CN 201810926199A CN 108875091 B CN108875091 B CN 108875091B
Authority
CN
China
Prior art keywords
crawler
analysis
seed
library
grabbing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810926199.9A
Other languages
English (en)
Other versions
CN108875091A (zh
Inventor
杨红飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huoshi Creation Technology Co ltd
Original Assignee
Hangzhou Firestone Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Firestone Technology Co ltd filed Critical Hangzhou Firestone Technology Co ltd
Priority to CN201810926199.9A priority Critical patent/CN108875091B/zh
Publication of CN108875091A publication Critical patent/CN108875091A/zh
Application granted granted Critical
Publication of CN108875091B publication Critical patent/CN108875091B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种统一管理的分布式网络爬虫系统系统,包括抓取数据部分和解析数据部分,抓取数据部分主要由一个调度爬虫调度节点和分布式爬虫子节点组成,通过抓取规则配置模块和爬虫任务配置模块生成任务种子,并将种子存入种子库,爬虫调度节点和爬虫子节点读取种子配置协同工作,将数据存入爬虫页面结果库;解析数据部分由解析调度节点从爬虫页面结果库获取到待解析的网页源码,统一分配到解析子节点,解析子节点读取解析配置完成解析。本发明能够实现对大量特定站点进行高效定制化爬取同时兼容通用站点的爬取,解决了现有技术存在的缺陷,并且提供可视化解决方案,减少用户劳动强度,节省系统资源。

Description

一种统一管理的分布式网络爬虫系统
技术领域
本发明涉及互联网技术领域,尤其涉及一种统一管理的分布式网络爬虫系统。
背景技术
网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫一般驻留在服务器上,通过给定的一些URL,利用HTTP等标准协议读取相应文档,然后以文档中包括的所有未访问过的URL作为新的起点,继续进行漫游,直到没有满足条件的新URL为止。
Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等。
scrapy-redis是一个基于redis的分布式爬虫框架,用于解决在爬取大量请求数据的情况下,单个主机处理能力不足的问题;可以解决单个机子的带宽限制、运行速度限制,分布式的节点出现问题,解决后可以再次启动,继续爬取。其大概原理是通过redis对爬取的请求进行存储和调度,对爬取产生的数据(items)进行存储,供后续处理使用,如保存到MySQL中,以实现数据对多爬取节点的共享;而scrapy框架的队列是保存在内存中的,无法被其他爬取节点使用。
发明内容
本发明针对现有技术的不足,提供一种统一管理的分布式网络爬虫系统。
本发明的目的是通过以下技术方案来实现的:一种统一管理的分布式网络爬虫系统,包括抓取规则配置模块、爬虫任务配置模块、种子库、爬虫调度节点、若干爬虫子节点、爬虫页面结果库、解析调度节点、解析规则配置模块、若干解析子节点;
所述抓取规则配置模块对爬虫抓取规则进行设置,所述抓取规则包括抓取规则标识符、种子URL、抽取规则以及保存规则;
所述爬虫任务配置模块对爬虫抓取任务进行配置,包括:任务标识符、抓取优先级、刷新率、种子是否去重生成;
通过抓取规则配置模块和爬虫任务配置模块生成任务种子,并将种子存入种子库;
所述种子库中存储种子,并对种子进行配置,包括:
a、抓取状态:未调度、调度中、抓取成功、抓取失败、无可用代理;
b、抓取次数:当前尝试次数及最大尝试次数;
所述爬虫调度节点:每次从种子库获取当前尝试次数小于最大尝试次数的种子,将获取的种子分布式分配到各个爬虫子节点去执行抓取,抓取完成后返回抽取到的新种子、抓取状态及当前尝试次数到种子库;
所述爬虫子节点:将抓取成功的种子URL的网页源码存入爬虫页面结果库,将抽取到的新种子、抓取状态及当前尝试次数返回给种子库;
所述爬虫页面结果库:保存抓取成功的网页源码、响应状态码、URL、抓取时间以及抓取规则标识符;
所述解析调度节点:从爬虫页面结果库中获取需要解析的网页源码,分布式分配到各解析子节点去解析;
所述解析规则配置模块:对解析规则进行配置,指定需要保存的字段及每个字段对应的解析规则;设置正则表达式,用于匹配爬虫页面结果库中保存的URL字段,如果匹配,通过配置的解析规则对数据进行解析;
所述解析子节点:执行页面解析,匹配符合解析规则的配置,完成解析过程。
进一步地,该系统具有可视化功能,具体实现为:所述抓取规则配置模块通过可视化页面对爬虫抓取规则进行设置;所述爬虫任务配置模块通过可视化页面对爬虫抓取任务进行配置;所述种子库根据种子的任务标识符对种子进行划分,通过种子库的可视化能够查看当前任务的抓取状态;所述爬虫页面结果库根据种子的任务标识符或抓取规则标识符对爬虫页面结果库的结果进行划分,通过可视化能够直接查看当前抓取的网页结果;所述解析规则配置模块通过可视化页面对解析规则进行配置。
进一步地,所述种子库和爬虫页面结果库均采用ElasticSearch数据库;所述爬虫调度节点和解析调度节点均采用redis数据库。
进一步地,所述爬虫调度节点每次从种子库获取种子时,对重复URL去重,然后再分布式分配到各个爬虫子节点去执行抓取。
进一步地,所述爬虫调度节点从种子库获取种子按照优先级获取,规则如下:
设置4个优先级:a1、a2、a3、a4,从左往右优先级逐渐降低;b1、b2、b3、b4分别为a1、a2、a3、a4优先级在种子库中需要被调度的种子数量;g为设置的每次调度的种子数;则:
Figure GDA0002444664120000031
进一步地,所述爬虫子节点设置种子抓取最长访问时间:
初始值为a,t为下次抓取最长时间,N<t<M,N为下次抓取时间的最小值,M为下次抓取时间的最大值;b为当前访问状态,0为失败,1为成功;则:
Figure GDA0002444664120000032
进一步地,该系统还包括解析纠错库和解析结果库,所述解析子节点完成解析后,将不符合规范的解析结果存入解析纠错库,将符合规范的解析结果存入解析结果库。
进一步地,所述解析纠错库通过可视化能够直接查看解析结果中不符合规范的错误数据,快速定位错误,完善解析规则,增强数据库数据的规范性。
进一步地,所述解析结果库保存解析成功的数据,包括解析结果、URL、抓取时间、解析时间、解析规则标识符和任务标识符;解析结果按照解析规则标识符划分,通过可视化能够直接查看当前解析结果数据。
进一步地,所述解析纠错库和解析结果库均采用ElasticSearch数据库。
本发明的有益效果是:本发明针对现有技术存在的每个项目都是独立的,不利于统一管理,无法实现种子的统一调度,不能可视化,没有用户体验,不可配置的问题,提供一种统一管理的分布式网络爬虫系统,能够实现对大量特定站点进行高效定制化爬取同时兼容通用站点的爬取,解决了现有技术存在的缺陷,并且提供可视化解决方案,减少用户劳动强度,节省系统资源。
附图说明
图1为本发明一种统一管理的分布式网络爬虫系统的结构框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
本发明提供的一种统一管理的分布式网络爬虫系统系统,适用于网络信息数据采集领域,采用分布式结构,如图1,包括抓取规则配置模块、爬虫任务配置模块、种子库、爬虫调度节点、若干爬虫子节点、爬虫页面结果库、解析调度节点、解析规则配置模块、若干解析子节点。整体可划为两大部分:
抓取数据部分,主要由一个调度爬虫调度节点和分布式爬虫子节点组成,通过抓取规则配置模块和爬虫任务配置模块生成任务种子,并将种子存入种子库,爬虫调度节点和爬虫子节点读取种子配置协同工作,将数据存入爬虫页面结果库。
解析数据部分,由解析调度节点从爬虫页面结果库获取到待解析的网页源码,统一分配到解析子节点,解析子节点读取解析配置完成解析。
下面详细阐述每个模块的具体功能:
所述种子库可以采用ElasticSearch数据库;所述爬虫页面结果库可以采用ElasticSearch 数据库;所述解析纠错库可以采用ElasticSearch数据库;所述解析结果库可以采用 ElasticSearch数据库;
所述爬虫调度节点可以采用redis数据库;所述解析调度节点可以采用redis数据库;
使用到的数据库特点:
ElasticSearch特点:(百/千万级)数据量多、速度慢;
Redis特点:内存cache速度快、数据量小。
所述抓取规则配置模块可以通过可视化页面对爬虫抓取规则进行设置,所述抓取规则包括抓取规则标识符、种子URL、抽取规则以及保存规则。
所述爬虫任务配置模块可以通过可视化页面对爬虫抓取任务进行配置,包括:
1、任务标识符:用于对任务进行标识区分;
2、抓取优先级:种子是否需要优先被调度;
3、刷新率:抓取该任务的周期;
4、种子是否去重生成:去重生成及之前抓取并保存过的URL,不会再抓取。
通过抓取规则配置模块和爬虫任务配置模块生成任务种子,并将种子存入种子库。
所述种子库中存储种子,并对种子进行配置,包括:
1、抓取状态:未调度、调度中、抓取成功、抓取失败、无可用代理;
2、抓取次数:当前尝试次数及最大尝试次数。
所述种子库根据种子的任务标识符对种子进行划分,通过种子库的可视化可以查看当前任务的抓取状态。
所述爬虫调度节点:每次从种子库获取当前尝试次数小于最大尝试次数的种子,将获取的种子分布式分配到各个爬虫子节点去执行抓取,抓取完成后返回抽取到的新种子、抓取状态及当前尝试次数到种子库;
优选地,每次从种子库获取种子时,将种子放入redis数据库,对重复URL去重,然后再分布式分配到各个爬虫子节点去执行抓取;
优选地,爬虫调度节点从种子库获取种子按照优先级获取,规则如下:
设置4个优先级:
a1、a2、a3、a4从左往右优先级逐渐降低;
b1、b2、b3、b4分别为a1、a2、a3、a4优先级在种子库中需要被调度的种子数量;
g为设置的每次调度的种子数;
Figure GDA0002444664120000051
当b1>=g时:
g=b1
当b1<g≤b1+b2时:
b2=g-b1
g=b1+g-b1
当b1+b2<g≤b1+b2+b3时:
b3=g-b1-b2
g=b1+b2+(g-b1-b2)
当g>b1+b2+b3时:
b4=g-b1-b2-b3
g=b1+b2+b3+(g-b1-b2-b3)
所述爬虫子节点:将抓取成功的种子URL的网页源码存入爬虫页面结果库,将抽取到的新种子、抓取状态及当前尝试次数返回给种子库;
所述爬虫子节点可以设置种子抓取最长访问时间:
初始值为a;
t为下次抓取最长时间;
N<t<M;
N为下次抓取时间的最小值;
M为下次抓取时间的最大值;
b为当前访问状态,0为失败,1为成功;
Figure GDA0002444664120000052
所述爬虫页面结果库:保存抓取成功的网页源码、响应状态码、URL、抓取时间以及抓取规则标识符;
所述爬虫页面结果库根据种子的任务标识符或抓取规则标识符对爬虫页面结果库的结果进行划分,通过可视化可直接查看当前抓取的网页结果。
所述解析调度节点:从爬虫页面结果库中获取需要解析的网页源码,存入redis数据库,分布式分配到各解析子节点去解析;
所述解析规则配置模块:通过可视化页面对解析规则进行配置,指定需要保存的字段及每个字段对应解析规则;此外,还可以设置一个正则表达式,用于匹配爬虫页面结果库中保存的URL字段,如果匹配,通过配置的解析规则对数据进行解析。
所述解析子节点:执行页面解析,匹配符合解析规则的配置,完成解析过程,并将不符合规范的解析结果存入解析纠错库,将符合规范的解析结果存入解析结果库。
入库规范:数据库特殊字段设置规范,如手机号码为数字,通过正则判断,如手机号码存在中文情况的则不符合规范。
优选地,所述解析纠错库:通过可视化可以直接查看解析结果中不符合规范的错误数据,快速定位错误,完善解析规则,增强数据库数据的规范性。
优选地,所述解析结果库:保存解析成功的数据,主要包括解析结果、URL、抓取时间、解析时间、解析规则标识符和任务标识符。解析结果按照解析规则标识符划分,通过可视化可直接查看当前解析结果数据。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

Claims (6)

1.一种统一管理的分布式网络爬虫系统,其特征在于,包括抓取规则配置模块、爬虫任务配置模块、种子库、爬虫调度节点、若干爬虫子节点、爬虫页面结果库、解析调度节点、解析规则配置模块、若干解析子节点;
所述抓取规则配置模块对爬虫抓取规则进行设置,所述抓取规则包括抓取规则标识符、种子URL、抽取规则以及保存规则;
所述爬虫任务配置模块对爬虫抓取任务进行配置,包括:任务标识符、抓取优先级、刷新率、种子是否去重生成;
通过抓取规则配置模块和爬虫任务配置模块生成任务种子,并将种子存入种子库;
所述种子库中存储种子,并对种子进行配置,包括:
a、抓取状态:未调度、调度中、抓取成功、抓取失败、无可用代理;
b、抓取次数:当前尝试次数及最大尝试次数;
所述爬虫调度节点:每次从种子库获取当前尝试次数小于最大尝试次数的种子,将获取的种子分布式分配到各个爬虫子节点去执行抓取,抓取完成后返回抽取到的新种子、抓取状态及当前尝试次数到种子库;所述爬虫调度节点每次从种子库获取种子时,对重复URL去重,然后再分布式分配到各个爬虫子节点去执行抓取;
所述爬虫调度节点从种子库获取种子按照优先级获取,规则如下:
设置4个优先级:a1、a2、a3、a4,从左往右优先级逐渐降低;b1、b2、b3、b4分别为a1、a2、a3、a4优先级在种子库中需要被调度的种子数量;g为设置的每次调度的种子数;则:
Figure FDA0002444664110000011
所述爬虫子节点:将抓取成功的种子URL的网页源码存入爬虫页面结果库,将抽取到的新种子、抓取状态及当前尝试次数返回给种子库;所述爬虫子节点设置种子抓取最长访问时间:
初始值为a,t为下次抓取最长时间,N<t<M,N为下次抓取时间的最小值,M为下次抓取时间的最大值;b为当前访问状态,0为失败,1为成功;则:
Figure FDA0002444664110000012
所述爬虫页面结果库:保存抓取成功的网页源码、响应状态码、URL、抓取时间以及抓取规则标识符;
所述解析调度节点:从爬虫页面结果库中获取需要解析的网页源码,分布式分配到各解析子节点去解析;
所述解析规则配置模块:对解析规则进行配置,指定需要保存的字段及每个字段对应的解析规则;设置正则表达式,用于匹配爬虫页面结果库中保存的URL字段,如果匹配,通过配置的解析规则对数据进行解析;
所述解析子节点:执行页面解析,匹配符合解析规则的配置,完成解析过程;
该系统具有可视化功能,具体实现为:所述抓取规则配置模块通过可视化页面对爬虫抓取规则进行设置;所述爬虫任务配置模块通过可视化页面对爬虫抓取任务进行配置;所述种子库根据种子的任务标识符对种子进行划分,通过种子库的可视化能够查看当前任务的抓取状态;所述爬虫页面结果库根据种子的任务标识符或抓取规则标识符对爬虫页面结果库的结果进行划分,通过可视化能够直接查看当前抓取的网页结果;所述解析规则配置模块通过可视化页面对解析规则进行配置。
2.根据权利要求1所述的一种统一管理的分布式网络爬虫系统,其特征在于,所述种子库和爬虫页面结果库均采用ElasticSearch数据库;所述爬虫调度节点和解析调度节点均采用redis数据库。
3.根据权利要求1所述的一种统一管理的分布式网络爬虫系统,其特征在于,该系统还包括解析纠错库和解析结果库,所述解析子节点完成解析后,将不符合规范的解析结果存入解析纠错库,将符合规范的解析结果存入解析结果库。
4.根据权利要求1所述的一种统一管理的分布式网络爬虫系统,其特征在于,所述解析纠错库通过可视化能够直接查看解析结果中不符合规范的错误数据,快速定位错误,完善解析规则,增强数据库数据的规范性。
5.根据权利要求1所述的一种统一管理的分布式网络爬虫系统,其特征在于,所述解析结果库保存解析成功的数据,包括解析结果、URL、抓取时间、解析时间、解析规则标识符和任务标识符;解析结果按照解析规则标识符划分,通过可视化能够直接查看当前解析结果数据。
6.根据权利要求3所述的一种统一管理的分布式网络爬虫系统,其特征在于,所述解析纠错库和解析结果库均采用ElasticSearch数据库。
CN201810926199.9A 2018-08-14 2018-08-14 一种统一管理的分布式网络爬虫系统 Active CN108875091B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810926199.9A CN108875091B (zh) 2018-08-14 2018-08-14 一种统一管理的分布式网络爬虫系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810926199.9A CN108875091B (zh) 2018-08-14 2018-08-14 一种统一管理的分布式网络爬虫系统

Publications (2)

Publication Number Publication Date
CN108875091A CN108875091A (zh) 2018-11-23
CN108875091B true CN108875091B (zh) 2020-06-02

Family

ID=64318079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810926199.9A Active CN108875091B (zh) 2018-08-14 2018-08-14 一种统一管理的分布式网络爬虫系统

Country Status (1)

Country Link
CN (1) CN108875091B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582853A (zh) * 2018-12-19 2019-04-05 平安科技(深圳)有限公司 数据信息获取方法、装置、计算机设备及存储介质
CN109670100B (zh) * 2018-12-21 2020-06-26 第四范式(北京)技术有限公司 一种页面数据抓取方法及装置
CN110119468A (zh) * 2019-05-15 2019-08-13 重庆八戒传媒有限公司 一种提高抓取公开数据种子精度的方法和装置
CN110737814A (zh) * 2019-10-21 2020-01-31 软通动力信息技术有限公司 一种网站数据的爬取方法、装置、电子设备及存储介质
CN111045659A (zh) * 2019-11-11 2020-04-21 国家计算机网络与信息安全管理中心 采集互联网金融网页的项目列表的方法及系统
CN110929126A (zh) * 2019-12-02 2020-03-27 杭州安恒信息技术股份有限公司 一种基于远程过程调用实现的分布式爬虫调度方法
CN111723265A (zh) * 2020-07-01 2020-09-29 杭州叙简科技股份有限公司 一种可扩展的新闻网站通用爬虫方法及系统
CN113254278B (zh) * 2021-07-10 2021-10-19 北京开科唯识技术股份有限公司 一种用于处理互联网请求的方法和系统
CN113934912A (zh) * 2021-11-11 2022-01-14 北京搜房科技发展有限公司 数据爬取方法及装置、存储介质及电子设备
CN114297460B (zh) * 2021-11-15 2024-08-16 北京众标智能科技有限公司 一种分布式动态可配置的爬虫平台及爬虫方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559219A (zh) * 2013-10-18 2014-02-05 北京京东尚科信息技术有限公司 分布式网络爬虫抓取任务调度方法、调度端设备及抓取节点
CN105243159A (zh) * 2015-10-28 2016-01-13 福建亿榕信息技术有限公司 一种基于可视化脚本编辑器的分布式网络爬虫系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090024583A1 (en) * 2007-07-18 2009-01-22 Yahoo! Inc. Techniques in using feedback in crawling web content

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559219A (zh) * 2013-10-18 2014-02-05 北京京东尚科信息技术有限公司 分布式网络爬虫抓取任务调度方法、调度端设备及抓取节点
CN105243159A (zh) * 2015-10-28 2016-01-13 福建亿榕信息技术有限公司 一种基于可视化脚本编辑器的分布式网络爬虫系统

Also Published As

Publication number Publication date
CN108875091A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN108875091B (zh) 一种统一管理的分布式网络爬虫系统
CN107895009B (zh) 一种基于分布式的互联网数据采集方法及系统
US11899681B2 (en) Knowledge graph building method, electronic apparatus and non-transitory computer readable storage medium
CN102930059B (zh) 一种聚焦爬虫的设计方法
JP5298117B2 (ja) 分散コンピューティングにおけるデータマージング
CN102819591B (zh) 一种基于内容的网页分类方法及系统
CN106534244B (zh) 一种代理资源的调度方法及装置
CN104978408A (zh) 基于Berkeley DB数据库的主题爬虫系统
CN103970788A (zh) 一种基于网页爬取的爬虫技术
CN104516982A (zh) 一种基于Nutch的Web信息提取方法和系统
CN110704713B (zh) 一种基于多数据源的论文数据爬取方法及系统
CN101441629A (zh) 一种非结构化网页信息的自动采集方法
CN111859076B (zh) 数据爬取方法、装置、计算机设备及计算机可读存储介质
CN107391528B (zh) 前端组件依赖信息搜索方法及设备
CN104391978A (zh) 用于浏览器的网页收藏处理方法及装置
CN114528457A (zh) Web指纹检测方法及相关设备
CN113656673A (zh) 面向广告投放的主从分布内容爬取机器人
CN107506502A (zh) 一种数据采集系统和数据采集方法
CN115033876A (zh) 日志处理方法、日志处理装置、计算机设备及存储介质
CN109446441B (zh) 一种通用的网络社区可信分布式采集存储系统
CN106897313B (zh) 一种海量用户业务偏好评估方法和装置
CN107169047A (zh) 一种实现数据缓存的方法及装置
CN104503983A (zh) 为搜索引擎提供网站认证数据的方法及装置
CN109450742B (zh) 监控网络数据的方法、实体机虚拟设备及网络系统
CN109145307A (zh) 用户画像识别方法、推送方法、装置、设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 7 / F, building B, 482 Qianmo Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province 310000

Patentee after: Huoshi Creation Technology Co.,Ltd.

Address before: 7 / F, building B, 482 Qianmo Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province 310000

Patentee before: HANGZHOU FIRESTONE TECHNOLOGY Co.,Ltd.