CN109522466A - 一种分布式爬虫*** - Google Patents
一种分布式爬虫*** Download PDFInfo
- Publication number
- CN109522466A CN109522466A CN201811284836.3A CN201811284836A CN109522466A CN 109522466 A CN109522466 A CN 109522466A CN 201811284836 A CN201811284836 A CN 201811284836A CN 109522466 A CN109522466 A CN 109522466A
- Authority
- CN
- China
- Prior art keywords
- module
- webpage
- crawler
- data
- rule
- 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.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种分布式爬虫***,包括分布式爬取模块和网页自动结构化模块;所述分布式爬取模块由爬虫核心模块,爬取规则模块和任务管理模块组成;所述网页自动结构化模块由网页结构化模块和模板训练模块组成。
Description
技术领域
本发明属于计算机技术领域,具体地说,涉及一种分布式爬虫***。
背景技术
互联网是企业进行发布信息的渠道,是个人共享和获取信息的工具,同时也为政府提供了大量有价值的信息,用于监管企业和个人。政府有效的利用互联网的信息,能发现舆论倾向,建立征信体系,发现犯罪行为等。然而这些有价值的信息零散分布于互联网的各个角落,使得我们无法对之有效利用。
爬虫***,是对海量的分散的互联网数据进行采集的***,是搜索引擎***的基础。大数据近年来快速发展,炙手可热,不仅是数据的容量大,更是强调对全样本的数据的分析。互联网数据中包含了大量有价值信息,是大数据的重要数据来源。
而互联网上的数据内容丰富,组织形式也灵活多样。传统的爬虫***,对所有的网页采用同样的办法处理,利用深度优先或广度优先的办法获取网页链接,下载网页,对网页中的所有的文本数据建立倒排索引。这种方式没有对网页数据的信息进行组织、归类。
应大数据的需求,分布式爬虫***是解决这一问题的方案。分布式爬虫,对同一个网站的同类数据,进行结构化。同时,能利用分布式的软件设计方法,实现爬虫的高效采集。
发明内容
为了能够更好的利用这些信息资源,本发明的目的在于提供一种分布式爬虫***,用于信息搜集整理,统计分析,让信息来自于民,用之于民。
其技术方案如下:
一种分布式爬虫***,包括分布式爬取模块和网页自动结构化模块;
所述分布式爬取模块由爬虫核心模块,爬取规则模块和任务管理模块组成,爬虫核心模块负责任务的具体执行,包括下载网页,根据规则解析数据,存取数据得功能;规则模块负责具体网址爬取规则和爬取深度的编辑;任务管理模块是负责具体爬取任务的调度,负责爬虫队列数据的存取工作;
所述网页自动结构化模块由网页结构化模块和模板训练模块组成;结构化模块的功能是根据相应的网页模板来解压并分析上传的网页zip文件,产生结构化数据存入数据库中;训练模块主要用于当前要解析的网页不存在模板,通过训练模块选取一个网页进行选取数据的训练,最后生成可以解析该网页的模板。
本发明的有益效果:
本发明用于信息搜集整理,统计分析,让信息来自于民,用之于民,可以实现爬虫的高效采集。
附图说明
图1为本发明的分布式爬虫***的原理图;
图2为本发明的分布式爬虫***的操作流程图;
图3为结构化内部逻辑执行流程图;
图4为分布式网络爬虫代码的代码执行逻辑图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案作进一步详细地说明。
一、运行环境
操作***:Linux***环境
Python版本:python2.7.12
服务器程序:Apahce2.4
数据库:redis非关系行数据库
字符编码:uft-8
二、***模块设计:
分布式爬虫***的功能模块划分如下图1所示。
分布式爬虫整个***分为分布式爬取和网页自动结构化的两个主要功能模块。
其中分布式爬取模块由爬虫核心模块,爬取规则模块和任务管理模块组成。爬虫核心模块负责任务的具体执行,包括下载网页,根据规则解析数据,存取数据等功能。规则模块负责具体网址爬取规则和爬取深度的编辑。任务管理模块是负责具体爬取任务的调度,负责爬虫队列数据的存取工作。
网页自动结构化模块由网页结构化模块和模板训练模块组成。结构化模块的功能是根据相应的网页模板来解压并分析上传的网页zip文件,产生结构化数据存入数据库中。训练模块主要用于当前要解析的网页不存在模板,通过训练模块选取一个网页进行选取数据的训练,最后生成可以解析该网页的模板。
三、***整体操作流程
从普通用户操作的角度来看,***的执行流程如图2所示,首先用户进入首页后,可以选择进入两个功能模块,分布式爬虫和网页自动结构化模块。下面分别介绍两个模块;
1.当用户进入分布式爬虫模块后,可以直接输入一个网址来启动或者停止一个爬虫,并且可以实时监测该爬虫的爬取情况和爬取结果,爬虫启动和运行过程中的一些参数可以进行配置,***提供了一个json格式的文件可以对爬虫的爬取规则和爬取深度进行自定义配置,爬虫的运行结果会实时存入服务器的相应目录以及redis数据库,关于爬虫在运行过程中的内部执行逻辑在第六章进行详细介绍。
2.当用户进入结构化模块后,可以选择一个模板然后对网页数据集zip文件进行自动结构化。如果该网页还不存在模板,可以直接进行训练,训练可以采取直接在线训练和通过上传网页源文件的方式进行训练,用户在训练页面选取数据,然后定义key,完成之后提交,***会根据提交的数据自动训练生成模板。然后用户通过该模板对网页数据集进行批量自动结构化,结构化的数据会自动存入redis内存数据库中,并且展示到前端页面。
四、网页自动结构化模块设计
1、功能描述:
能够对提供的网页自动进行结构化提取,提供一组相同模板的网页结合,能够自动结构化,提取出规定的字段值,并存入数据库。
2、设计思路:
因为此爬虫是通用爬虫,旨在能针对一般性网站都通用可行,因此考虑到这个问题我们没有使用通用爬虫使用的正则或者其他相关技术,而采用的一种智能化的方案一训练。
当我们拿到网页集合时,如果本地存在我们对这个集合的结构化规则,则使用本地规则进行结构化抓取,如果不存在,用户可以采用训练方式,手动选取数据,进行训练生成一个模板,然后根据规则对网页集合进行结构化。
3、结构化执行流程
结构化内部逻辑执行流程图如下图3所示。
在自动结构化模块中,代码的执行逻辑如上图3所示,首先如果判断需要结构化的网页没有对应的模板,如果不存在模板,则对进入训练模式,训练模式的数据源可以有两种;第一种是直接输入网址,即可打开网页进行选取数据训练,第二种是通过选取本地html文件进行选取数据来训练,训练的方式采用“xpath+规则”并行的方式,首先记录用户选取的数据的xpath数据,同时把选取的数据和网页文件转化为字符流,查找字符在字符流出现的位置,根据匹配程度,计算权重值,形成规则,然后把xpath和规则写入到该网页文件对应的模板中。
当模板训练成功后就可以对网页集合进行结构化了,数据源采用的是网页文件的压缩包的形式,类型为ZIP,当上传该压缩文件后,会对该文件进行解压,遍历其中每一个网页文件,并且依据模板来结构化数据,结构化的过程中首先是要xpath来提取数据,当提取数据失败的时候,自动对失败而字段改用规则进行提取,最后把结构化的结果存入到数据库中。
3、训练模式描述
所谓训练就是告诉爬虫我们需要的东西是什么,爬虫会对训练的内容记忆,这里我们采用了类似注解的方式,这与传统的提取数据的方式有很大的差别,传统的方式需要实现把要提取的数据的匹配规则给制定好,然后使用该规则去提取数据,但是通过训练的方式不需要事先写规则,只需要告诉爬虫我们要提取的数据内容是什么,他会自动根据内容来查找然后生成规则,然后可以把改规则重用到其他相似类型的网页中。比如,我们打开一个网页,我们知道左上角是logo,在我们的训练方式中,我们会告诉爬虫logo内容,爬虫会自己找到logo所在的位置,通过不断的训练,爬虫会自己找个一个寻找logo位置的算法,并保存下来,当遇到相同结构的网页时,它会使用这个算法找到logo的位置,从而提取出logo,这就是我们所说的生成结构化规则。
五、分布式爬虫模块设计
1、功能描述
分布式爬虫***可以进行分布式部署,并且可以同步配合完成一次爬取任务,通过分布式的设计可以明显的提高爬取的效率,并且可以完成大批量的数据抓取的任务
2、设计思路
分布式爬虫的设计是使用的python 2.7.12版本,并且使用了scrapy框架和redis数据库实现了分布式爬取网站和任务同步的目的,通过在数据库中建立一个请求队列,来保证启动的各个爬虫的任务都从数据中读取一个统一的请求队列中来保证启动的各个爬虫任务同步,通过对每一个请求进行hash运算,并且使用set集合来实现所有请求的去重处理。
3、流程设计
分布式网络爬虫代码的代码执行逻辑如上图4所示,服务的接收到前端的启动爬虫的请求后,会根据请求参数中的url和进程数,来初始化一个爬虫并且启动爬取。初始化过程中需要先对url进行切割,截取url中的域名部分来作为爬虫的名称,从规则配置文件中查找该是否存在该域名对于的爬取规则,如果有的话,规则规则来初始化爬虫,如果不存在爬取规则,则默认依据广度遍历,进行全站网页的爬取。
爬虫初始化完毕之后会请求redis任务队列,寻找是否有对应该爬虫的待爬取任务,如果存在则读取进行爬取,如果不存在就根据url来发起请求,构造请求存入任务队列,然后再读取任务进行爬取。这是一个爬虫的启动过程,当需要分布式多个爬虫进行爬取的时候,只需要在相应的机器上启动该url对于的爬虫即可,爬虫的启动过程同上,同时也会自动读取redis任务队列中的任务来爬取,通过多个爬虫共享一个爬取队列,就实现了一个爬取任务的分布式运行。同时redis的任务队列采用了hash对请求进行计算,并且使用了set数据结构来达到url去重的目的,避免重复爬取。
爬虫在运行过程中,爬取的结果数据会存入服务器的相应目录中和数据库中,前端页面通过定时器AJAX请求,进行实时展示爬虫的运行情况。
以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。
Claims (1)
1.一种分布式爬虫***,其特征在于,包括分布式爬取模块和网页自动结构化模块;
所述分布式爬取模块由爬虫核心模块,爬取规则模块和任务管理模块组成,爬虫核心模块负责任务的具体执行,包括下载网页,根据规则解析数据,存取数据得功能;规则模块负责具体网址爬取规则和爬取深度的编辑;任务管理模块是负责具体爬取任务的调度,负责爬虫队列数据的存取工作;
所述网页自动结构化模块由网页结构化模块和模板训练模块组成;结构化模块的功能是根据相应的网页模板来解压并分析上传的网页zip文件,产生结构化数据存入数据库中;训练模块主要用于当前要解析的网页不存在模板,通过训练模块选取一个网页进行选取数据的训练,最后生成可以解析该网页的模板。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811284836.3A CN109522466B (zh) | 2018-10-20 | 2018-10-20 | 一种分布式爬虫*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811284836.3A CN109522466B (zh) | 2018-10-20 | 2018-10-20 | 一种分布式爬虫*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109522466A true CN109522466A (zh) | 2019-03-26 |
CN109522466B CN109522466B (zh) | 2023-04-07 |
Family
ID=65772788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811284836.3A Active CN109522466B (zh) | 2018-10-20 | 2018-10-20 | 一种分布式爬虫*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109522466B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231534A (zh) * | 2020-10-14 | 2021-01-15 | 上海蜜度信息技术有限公司 | 一种配置爬虫的方法与设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001033382A1 (en) * | 1999-11-02 | 2001-05-10 | Alta Vista Company | Web crawler system and method for prioritizing document downloading and maintaining document freshness |
CN104346328A (zh) * | 2013-07-23 | 2015-02-11 | 同程网络科技股份有限公司 | 基于网页数据抓取的垂直智能爬虫数据收集方法 |
CN105045838A (zh) * | 2015-07-01 | 2015-11-11 | 华东师范大学 | 基于分布式存储***的网络爬虫*** |
CN105243159A (zh) * | 2015-10-28 | 2016-01-13 | 福建亿榕信息技术有限公司 | 一种基于可视化脚本编辑器的分布式网络爬虫*** |
CN106649270A (zh) * | 2016-12-19 | 2017-05-10 | 四川长虹电器股份有限公司 | 舆情监测分析方法 |
CN107729564A (zh) * | 2017-11-13 | 2018-02-23 | 北京众荟信息技术股份有限公司 | 一种分布式的聚焦网络爬虫网页爬取方法及*** |
-
2018
- 2018-10-20 CN CN201811284836.3A patent/CN109522466B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001033382A1 (en) * | 1999-11-02 | 2001-05-10 | Alta Vista Company | Web crawler system and method for prioritizing document downloading and maintaining document freshness |
CN104346328A (zh) * | 2013-07-23 | 2015-02-11 | 同程网络科技股份有限公司 | 基于网页数据抓取的垂直智能爬虫数据收集方法 |
CN105045838A (zh) * | 2015-07-01 | 2015-11-11 | 华东师范大学 | 基于分布式存储***的网络爬虫*** |
CN105243159A (zh) * | 2015-10-28 | 2016-01-13 | 福建亿榕信息技术有限公司 | 一种基于可视化脚本编辑器的分布式网络爬虫*** |
CN106649270A (zh) * | 2016-12-19 | 2017-05-10 | 四川长虹电器股份有限公司 | 舆情监测分析方法 |
CN107729564A (zh) * | 2017-11-13 | 2018-02-23 | 北京众荟信息技术股份有限公司 | 一种分布式的聚焦网络爬虫网页爬取方法及*** |
Non-Patent Citations (2)
Title |
---|
ZHENG GUOJUN ET AL.: "\"Design and application of intelligent dynamic crawler for web data mining\"" * |
何国正: "" 分布式智能网络爬虫的设计与实现"" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231534A (zh) * | 2020-10-14 | 2021-01-15 | 上海蜜度信息技术有限公司 | 一种配置爬虫的方法与设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109522466B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Healy | The performativity of networks | |
Zhang et al. | A knowledge management framework for the support of decision making in humanitarian assistance/disaster relief | |
CN110597981B (zh) | 一种采用多策略自动生成摘要的网络新闻概要*** | |
CN112749284B (zh) | 知识图谱构建方法、装置、设备及存储介质 | |
US7853594B2 (en) | System and method for determining founders of an information aggregate | |
US8166030B2 (en) | Information resource taxonomy | |
CN107291778B (zh) | 数据的收集方法及装置 | |
US9069880B2 (en) | Prediction and isolation of patterns across datasets | |
KR101801257B1 (ko) | 효율적 건설문서 관리를 위한 텍스트마이닝 적용 기술 | |
CN111708774B (zh) | 一种基于大数据的产业分析*** | |
Rousseau | A view on big data and its relation to Informetrics | |
CN108052632A (zh) | 一种网络信息获取方法、***及企业信息搜索*** | |
CN108959580A (zh) | 一种标签数据的优化方法及*** | |
CN102214227B (zh) | 基于互联网层次结构存储的自动舆情监控方法 | |
US20210109945A1 (en) | Self-orchestrated system for extraction, analysis, and presentation of entity data | |
CN113742496B (zh) | 一种基于异构资源融合的电力知识学习***及方法 | |
CN109522466A (zh) | 一种分布式爬虫*** | |
KR102025813B1 (ko) | 사건 흐름 정보를 제공하기 위한 연대순 정보 기반 큐레이션 장치 및 그것의 제어방법 | |
Verma et al. | Kdap: An open source toolkit to accelerate knowledge building research | |
CN109213909A (zh) | 一种融合搜索与计算的大数据分析***及其分析方法 | |
Nithya | Link Analysis Algorithm for Web Structure Mining | |
Castellano et al. | A web text mining flexible architecture | |
KR20220095654A (ko) | 소셜 데이터 수집 분석 시스템 | |
Fagin et al. | Efficient implementation of large-scale multi-structural databases | |
CN112464668A (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 |