CN112818198A - 一种高度解耦可动态管理爬虫的方法 - Google Patents
一种高度解耦可动态管理爬虫的方法 Download PDFInfo
- Publication number
- CN112818198A CN112818198A CN202110095378.4A CN202110095378A CN112818198A CN 112818198 A CN112818198 A CN 112818198A CN 202110095378 A CN202110095378 A CN 202110095378A CN 112818198 A CN112818198 A CN 112818198A
- Authority
- CN
- China
- Prior art keywords
- crawler
- data
- task
- host
- client
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公布了一种高度解耦可动态管理爬虫的方法,该方法通过将爬虫分为数据解析和新目标生成两个阶段,将采集目标对应两阶段的规则按协议编写为json数据存入主机端;主机端运行任务,按照资源调度算法通过消息队列模块发送给资源充足的客户端,客户端接收到任务信息,通过爬虫协议核心转换成可执行信息并由爬虫运行模块运行,最后获取数据;主机端获取数据和新任务,存储并更新任务池;将主机端与爬虫服务器分离,能够减少系统的耦合性。由此,爬虫的功能分离出之后,既可以降低爬虫服务器的复杂性,还可以在分布式爬虫系统运行的同时修改主机端以达到特定的控制管理目的,从而对整个模块进行解耦合与可扩展设计,增强整个框架的健壮性与稳定性。
Description
技术领域
本发明涉及计算机数据挖掘技术,特别是涉及一种高度解耦可动态管理爬虫的方法。
背景技术
搜索引擎作为网络信息搜寻的工具,它以一定的策略在互联网中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务。1994年,爬虫程序被应用到索引程序中,Yahoo、Google等相继出现。但至今,功能再强大的搜索引擎都仍然存在信息丢失、更新率不高、精确率不高等问题。用户需要更快、更准、更方便、更有效的查询服务成为搜索引擎技术发展研究追求的目标。
在这种情况下定向抓取相关网页资源的主题爬虫应运而生。主题爬虫又称为聚焦爬虫,为自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。作为一种智能的Web爬虫,它的基本工作过程与一般的爬虫是相似的。与一般爬虫不同的是,主题爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。
在现有的爬虫程序中,主机端并不单独存在。对于数据挖掘过程中由服务器端网络爬虫完成的数据抓取、数据分析和数据调度、更新等功能的实现经常出现耦合现象,从而导致系统的运行性能降低。
发明内容
为了解决当前数据抓取、数据分析和数据调度、更新等功能的实现经常出现耦合现象的问题,本发明提出的适于高度解耦的可动态管理爬虫的方法可以基于有效的数据调度和更新方法实现相应解耦合现象。
本发明请求保护一种高度解耦可动态管理爬虫的方法,其特征在于,包括:
部署爬虫主机端镜像并运行主机端服务,所述主机端镜像完成消息传输、数据调度、存储记录、日志分析;
部署爬虫客户端镜像并运行客户端服务,所述客户端镜像完成消息传输、爬虫控制和爬虫协议;
将爬虫分为数据解析和新目标生成两个阶段,将采集目标对应两阶段的规则按协议编写为json数据存入主机端;
主机端运行任务,按照资源调度算法通过消息队列模块发送给资源充足的客户端,客户端接收到任务信息,通过爬虫协议核心转换成可执行信息并由爬虫运行模块运行,最后获取数据;
主机端获取数据和新任务,存储并更新任务池。
本发明通过将爬虫分为数据解析和新目标生成两个阶段,将采集目标对应两阶段的规则按协议编写为json数据存入主机端;主机端运行任务,按照资源调度算法通过消息队列模块发送给资源充足的客户端,客户端接收到任务信息,通过爬虫协议核心转换成可执行信息并由爬虫运行模块运行,最后获取数据;主机端获取数据和新任务,存储并更新任务池;将主机端与爬虫服务器分离,能够减少系统的耦合性。由此,爬虫的功能分离出来之后,一是降低爬虫服务器的复杂性,二是可以在分布式爬虫系统运行的同时修改主机端以达到特定的控制管理目的,从而对整个模块进行解耦合与可扩展设计,增强了整个框架的健壮性与稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
附图1为本发明所涉及的一种高度解耦可动态管理爬虫的方法。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照附图1,一种高度解耦可动态管理爬虫的方法,其特征在于,包括:
部署爬虫主机端镜像并运行主机端服务,所述主机端镜像完成消息传输、数据调度、存储记录、日志分析;
部署爬虫客户端镜像并运行客户端服务,所述客户端镜像完成消息传输、爬虫控制和爬虫协议;
将爬虫分为数据解析和新目标生成两个阶段,将采集目标对应两阶段的规则按协议编写为json数据存入主机端;
主机端运行任务,按照资源调度算法通过消息队列模块发送给资源充足的客户端,客户端接收到任务信息,通过爬虫协议核心转换成可执行信息并由爬虫运行模块运行,最后获取数据;
主机端获取数据和新任务,存储并更新任务池。
进一步的,所述主机端镜像完成的数据调度,包括资源调度算法,进行资源调度任务和资源控制;
所述主机端镜像完成的存储记录,至少包括存储所有过程数据、json格式的解析方法、json格式的采集目标、客户端采集结果数据、调度控制参数;
所述主机端镜像完成的日志分析,至少包括记录异常状态;
所述主机端镜像和客户端镜像完成的消息传输是主机端和客户端之间进行的数据传输;
所述客户端镜像完成的爬虫控制,至少包括当接受到主机发送新任务、结束、暂停指令信号时,进行相应操作;
所述客户端镜像完成的爬虫协议,包括当接收到主机json格式的解析方法时,生成对应的爬虫模板,当接收到json格式的采集目标时,生成对应的爬虫实体。
在利用Scrapy框架爬取数据时需要首先创建一个爬虫实体,接着再创建一个爬虫文件,如dd,这个爬虫文件会自动的保存在Spider目录下,通过这两个步骤就创建好了数据爬虫的基本环境,接下来就是根据自己的数据需求分别编写爬虫文件、Item、Pipeline、Setting中的代码,编写好后运行爬虫完成数据的爬取。
要创建一个爬虫实体,首先需要打开控制台cmd,并进入一个指定的路径,如F:\文件名,通过运行命令:scrapy start project<实体名称>,会在上面指定的路径下生成一个名是实体名称的文件夹,该文件夹中有若干的配置文件和子目录。
接着在控制台中进入爬虫实体所在的路径,在该路径下利用basic爬虫母版生成一个名为dd的爬虫文件。执行下面的命令:scrapy genspider-t basic<文件名><网站域名>,会在Spider目录下生成一个与爬虫文件名相同名字的python文件。在items.py中可以用scrapy.Field()分别定义所要爬取数据的变量名称和字段类型。
在保存数据之前,需要搭建好要保存的环境。phpStudy是一个PHP的程序集成包,里面包括PHP,MySQL等程序,使用非常方便且不需要配置环境,所以选择将爬取的数据储存在phpStudy集成包里的MySQL数据库中。首先需要下载安装phpStudy。
数据的存储过程是在爬虫实体的pipelines.py文件中实现的,利用for循环将每次爬取的数据保存到数据库的book表中。在控制台cmd中运行命令scrapy crawl<爬虫文件名>--nolog,就可以运行爬虫程序,完成数据的爬取和储存,其中nolog是在爬虫运行中不输出爬虫日志。
进一步地,所述将爬虫分为数据解析和新目标生成两个阶段,将采集目标对应两阶段的规则按协议编写为json数据存入主机端,还包括:
在数据存储与数据管理的功能方面,能直接抽象转换成图的数据使用图数据库来进行存储与管理;
对于超大规模的数据文件,使用分布式文件系统HDFS来进行存储与管理;
使用Tomcat服务器以及SpringMVC框架来进行中间组件的分层设计,在图计算方面使用GraphX进行数据的建模与分布式并行计算;
在数据可视化与结果展示方面使用可视化框架JQuery来进行展示;
所述将爬虫分为数据解析和新目标生成两个阶段由爬虫框架完成,包括下载器、页面处理器、规划器、生成器组件构成;
所述数据解析阶段由下载器和页面处理器完成,所述下载器负责从网上下载页面,所述页面处理器负责页面的解析工作,抽取有用的信息,以及发现链接;
所述新目标生成由规划器和生成器完成,所述规划器负责管理待抓去的URL以及去重的工作,所述生成器负责抽取结果的处理,包括计算、数据存储到文件、数据库,所述生成器将数据保存至MySQL数据库中;
上述四个组件由crawler联系,crawler是爬虫框架的核心,也是爬虫框架的入口,所述crawler封装了爬虫的创建、启动、停止,多线程。
在Tomcat服务器和HTML浏览器的通信过程中,使用的是HTTP通信协议,浏览器通过Get或者Post请求将D3.js和EasyUI前端的请求进行数据封装,通过HTTP协议将请求发送给Tomcat服务器的监听端口,而Tomcat通过Centra丨Dispather进一步将不同的服务请求分发给相应的Servlet进行处理。在Tomcat服务器上构建的后台代码使用Spring MVC的三层架构模式,将代码划分为Model、Controller和View层,从而实现后台代码的分层与解耦设计。Tomcat将后台代码的计算结果数据通过JSON格式进一步返回给前端,从而实现了浏览器和后台的双向通信。
在Tomcat服务器上构建的后台代码通过Spring MVC分层设计后,在Controller层通过RPC过程请求GraphX的图计算服务,GraphX的API接口将Tomcat容器请求到的图数据封装成属性图RDD,基于SparkCorEngine的并行计算后将结果返回给Controller。
对于Tomcat服务器的后台代码,为了代码之间的解耦合以及对接口进行扩展,使用SpringMVC三层架构设计,其中Tomcat开启服务监听端口监听浏览器发来的请求,得到请求之后再经过Model、Controller和View三层代码的处理,将后台代码的处理结果响应给浏览器
当浏览器在向Tomcat服务器发起HTTP请求,这些所有的请求都会被CentralDispather进行拦截,在拦截这些请求时可以进一步判断请求的类型以及目标Controller,从而对相关的请求进行一定的过滤。在CentralDispather会通过查询请求中携带的URL信息,在处理映射器进行URL和Controller的映射查询,得到正确的目标Controller之后,在CentralDispather将请求分发给目标Controller,目标Controller会接收请求中携带的参数信息进行过程处理,处理完并且要响应返回的数据会封装成Model在返回给CentralDispather,CentralDispather接收到Model数据之后需要进一步将其格式化从而转换成HTML格式的数据,会通过视图解析器来找到逻辑视图对应的真正的物理视图,得到对应的物理视图名称之后。CentralDispather会将之前的Model数据转发给View进行页面数据的遣染;在完成页面濱染后最后会将响应结果返回给浏览器。通过对图计算平台框架的技术架构不同功能层次的划分,以及对Tomcat服务器后台代码使用Spring MVC架构进行分层设计,可以实现整个图计算平台框架功能模块的解耦合以及可扩展设计,一个功能模块的修改以及扩展不会影响到其它功能模块的服务请求和使用,从而增强了整个框架的健壮性和可扩展性。
以数据的导入作为基础,将数据导入到Neo4j和HDFS后,进行数据的存储与数据的管理,存储的数据可以通过GraphX的RPC请求进行图计算,也可以通过Tomcat服务器进行网络通信来进行服务的请求,同时通过后台的Controller也可以请求GraphX进行图计算,整个框架流程的最后是将请求的服务结果以及图计算的结果进行前端可视化的结果展示
进一步地,所述主机端运行任务,按照资源调度算法通过消息队列模块发送给资源充足的客户端,客户端接收到任务信息,通过爬虫协议核心转换成可执行信息并由爬虫运行模块运行,最后获取数据,还包括:
消息队列模块采用调度算法进行任务池边界划分,将网络分割成若干个单元区域,每个单元称为超立方体;
对网络中的资源进行个体网格定位,删除聚集密度大的个体;
计算适应度,采用网格排名,网格拥挤距离来分配调度策略的适应度;
客户端环境选择,通过从以前的种群和新创建的种群中选择最佳能源调度策略来实现一个近似的、分布良好的归档集。
具体的,消息队列模块采用调度算法进行任务池边界划分,将网络分割成若干个单元区域,每个单元称为超立方体,包括:
在网格机制中,网格与进化群体相互影响、共同进化,当生成一个新的种群时,网格的位置和大小应该进行调整,以使其刚好笼罩整个种群。若新的非支配个体超出当前边界,则将其添加到外部存档集中。如果外部归档集已满,则从外部归档集中删除其他个体。根据网格方法,对于有M个目标的优化问题,需要设置有2M个边界的网格。首先,找到种群P中各个个体中第k个优化目标的最小值和最大值,分别表示为第k个目标在网格中的下界lbk和上界ubk(k=1,2,…,M)。
根据种群的大小和优化目标的数量,将网络分割成若干个单元区域,每个单元称为超立方体(Hyper-Cube,HC)。因此,原始的M维目标空间将被分割为dM个HC,每个HC表示为Mi,其中d是每个维度中目标空间的分割次数,通常为大于2的自然数。对应于个体i的第k个目标的边界可以表示为
其中,ωk为每一个小区域在第k维度上的宽度;
所述对网络中的资源进行个体网格定位,删除聚集密度大的个体,具体包括:
设有个体x=(x1,x2,x3,…,xn)的目标向量f(x)=(f1(x),f2(x),…,fm(x)),个体x中第k个目标在网格中位置Lk(x)表示如下:
k(x)≥rlbk且fk(x)<rubk,则认为个体x在该区域中,否则认为个体x不在该区域内。
个体x和个体y的网格差异表示如下:
网格差异受网格分割次数d的影响,分割次数d越大,则网格中单元的宽度越小,导致个体之间的网格差异值越高。
为保持解集的分布性,通常删除聚集密度大的个体。但是,算法求解过程中,存在外部归档集Q中的非支配集在网格中均匀分布,但是由于Q的规模有限,需要删除一定数量的个体,但是在删除个体时需要保留极点个体.
所述计算适应度,采用网格排名,网格拥挤距离来分配调度策略的适应度,具体包括二
为了获得更佳的单域能源调度策略,并使调度策略沿着获得的权衡面均匀地多样化,个体的适应度应包含收敛性和多样性方面的信息。本章节采用网格排名(GridRanking,GR),网格拥挤距离(Grid Crowding Distance,GCD)来分配调度策略的适应度。其中GR用于评估个体的收敛性,而GCD则用于评价单域能源调度策略的多样性。
GR是一种基于网格位置对能源调度策略进行排序的收敛估计器。对于每个策略,GR定义为每个目标的网格坐标的总和:
其中Lk(x)表示个体x第k个目标在网格中的坐标,M是目标数。可以将GR视为一种能源调度优化策略优于另一种策略的目标数量与两个调度策略中单个目标的价值差异之间的自然平衡。一方面,如果个体在大多数优化目标上的表现要好于竞争对手,那么获得较低GR值的可能性就更大。另一方面,单一目标的差异也是影响GR值的重要组成部分。
解的密度估计是适应度分配过程中的一项重要内容,因为一组分布良好的单域能源调度优化策略对整个Pareto前沿的搜索起着至关重要的作用。然而,现有的基于网格的密度估计器记录了占据单个HC的调度策略的数量,但由于HC的数量随着目标的数量呈指数增长,可能无法揭示它们的分布。扩大了考虑的单域范围,并引入了能源调度策略的近邻概念。如果GD(x,y)<M,则将能源调度策略y视为策略x的邻居,其中GD(x,y)表示x和y之间的欧几里德距离,M表示目标的个数。定义解密度估计量GCD定义为
GCD(x)=∑y∈N(x)(r-GD(x,y))
其中,N(x)表示解x的邻域集合;显然,单域能源调度优化策略的GCD依赖于邻域的范围,以及与其他策略之间的网格差异。较大的邻域范围通常包含更多的能源优化策略,导致更高的GCD值,从而对个体之间的拥挤程度提供了一个清晰的区分。同时,由于涉及网格差异度量,GCD也表示解在邻域内的位置信息,即邻居的位置越远,对GCD的贡献就越小。
根据基于网格的GR、GCD两个标准,可以有效地反映个体的进化状态,改进后的适应度函数表述如下:
F(x)=mGR(X)+(1-m)GCD(x)
其中m,(1-m)表示网格排名和网格拥挤距离的加权系数。
所述客户端环境选择,通过从以前的种群和新创建的种群中选择最佳能源调度策略来实现一个近似的、分布良好的归档集,具体包括:
环境选择的目标是通过从以前的种群和新创建的种群中选择最佳能源调度策略来实现一个近似的、分布良好的归档集。一种直接选择的方法是基于能源调度策略的适用度。但是,该方法的缺点是由于相邻的能源调度策略通常具有相似的适应度值,因此可能导致多样性的损失。在这里,通过引入了邻域惩罚机制对适应度进行调整来解决此问题。
根据GR、GCD这两个适应度标准对能源调度策略进行分级比较。GR是主要的判断标准,当个体的GR值相等时,GCD被认为是次要判断标准。因此本章节把调整的重点放在主要标准上。当调度策略被选择进入存档时,其相关个体的GR值将受到惩罚。为了在档案的收敛性和多样性之间取得良好的平衡,惩罚时需要考虑几个关键因素。1)对于与被选调度策略具有相同网格坐标的个体,将处以重罚。2)被支配调度策略比非支配策略受到更严厉的惩罚。3)为进一步防止拥挤,被选调度策略的邻居应受到处罚,惩罚程度应随着距离而降低。4)对被选调度策略的邻居实施惩罚时,可能还需要对由其支配的调度策略进行惩罚。
在GR调整过程中,单域能源调度策略可以分为三类:网格坐标等于所选择调度策略的个体,由被选调度策略支配的个体,以及非支配的调度策略。它们分别对应于惩罚度r+2,r和[0,r-1]内,其中r表示目标数。具体来说,对于最后一组中的调度策略,所选择的个体q的邻居p被施加至少M-GD(p,q)的惩罚度,相应地,由p网格控制的个体为施加的惩罚程度大于或等于p。
进一步地,所述主机端获取数据和新任务,存储并更新任务池,还包括:
在下发更新命令之前,控制器需要为可串接流计算出新路径的路径段串接方案;
使用源路由技术将数据包快速迁移到由路径段串联定义出的新路径上,入口交换机为进入网络的每个数据包头部添加路径段的信息,网络中间交换机匹配数据包头部携带的路径段信息,按照路径段定义的转发规则处理数据包;
协同更新机制采用源路由技术转发可串接流的数据包,具体来说,入口交换机将可串接出新路径的一组路径段信息添加到数据包的头域;
控制器需要在广域网链路带宽资源的容量限制下,协调所有传输请求在多个时隙和不同路径的传输速率分配;
当每个新的传输请求被提交到系统时,控制器首先调用流量工程算法尝试为其计算带宽分配方案并评估在完成期限之前的传输完成情况,然后根据算法得到的传输完成情况以最大化系统收益为准则决定是否接纳该请求;
若某个传输请求能够在指定的时间期限前完成,系统将获得与该请求关联的全部收益;否则,系统收益取决于该请求的完成期限类型和具体的传输完成情况;
基于带权网络拓扑图计算多棵最小权重斯坦纳树,考虑与链路剩余带宽量和负载量因素有关的任务池权重,采用多次迭代的方式计算所需斯坦纳树,在迭代计算中动态更新任务池的权重。
具体的,所述基于带权网络拓扑图计算多棵最小权重斯坦纳树,考虑与链路剩余带宽量和负载量因素有关的任务池权重,采用多次迭代的方式计算所需斯坦纳树,在迭代计算中动态更新任务池的权重,包括:
根据链路剩余可用带宽量对每条边的权重进行初始化。对于有向边l∈L,若网络为已接纳传输请求预留带宽后其剩余可用带宽量为cl,则边l的初始权重设定为1/cl。l上的最大剩余可用带宽量主要由以下两部分组成。一是已分配波长的容量为已接纳传输请求预留带宽后的剩余部分,若令g′l,t表示系统已经分配到l的波长数目,那么上述剩余带宽可以通过cg′l,t-∑R∈R,k,txR,k,tI(I∈k)计算得到。另外一部分是网络中尚未分配波长的潜在带宽容量。对于节点u到节点v光纤链路e上关联的有向边l,系统能为l分配波长数的上限是.
多播树计算和权重动态调整:面对一组传输请求,算法逐一为每个请求构造k棵最小权重斯坦纳树作为多播路由。在每计算出一棵斯坦纳树后,算法将经过该棵树的每条边的权重增加1,然后使用更新后的权重计算下一棵最小权重斯坦纳树。重复上述过程,直到计算出足够数量的多播树。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (5)
1.一种高度解耦可动态管理爬虫的方法,其特征在于,包括:
部署爬虫主机端镜像并运行主机端服务,所述主机端镜像完成消息传输、数据调度、存储记录、日志分析;
部署爬虫客户端镜像并运行客户端服务,所述客户端镜像完成消息传输、爬虫控制和爬虫协议;
将爬虫分为数据解析和新目标生成两个阶段,将采集目标对应两阶段的规则按协议编写为json数据存入主机端;
主机端运行任务,按照资源调度算法通过消息队列模块发送给资源充足的客户端,客户端接收到任务信息,通过爬虫协议核心转换成可执行信息并由爬虫运行模块运行,最后获取数据;主机端获取数据和新任务,存储并更新任务池。
2.如权利要求1所述的一种高度解耦可动态管理爬虫的方法,其特征在于,还包括:
所述主机端镜像完成的数据调度,包括资源调度算法,进行资源调度任务和资源控制;
所述主机端镜像完成的存储记录,至少包括存储所有过程数据、json格式的解析方法、json格式的采集目标、客户端采集结果数据、调度控制参数;
所述主机端镜像完成的日志分析,至少包括记录异常状态;
所述主机端镜像和客户端镜像完成的消息传输是主机端和客户端之间进行的数据传输;
所述客户端镜像完成的爬虫控制,至少包括当接受到主机发送新任务、结束、暂停指令信号时,进行相应操作;
所述客户端镜像完成的爬虫协议,包括当接收到主机json格式的解析方法时,生成对应的爬虫模板,当接收到json格式的采集目标时,生成对应的爬虫实体。
3.如权利要求1所述的一种高度解耦可动态管理爬虫的方法,其特征在于,还包括:
所述将爬虫分为数据解析和新目标生成两个阶段,将采集目标对应两阶段的规则按协议编写为json数据存入主机端,还包括:
在数据存储与数据管理的功能方面,能直接抽象转换成图的数据使用图数据库来进行存储与管理;
对于超大规模的数据文件,使用分布式文件系统HDFS来进行存储与管理;
使用Tomcat服务器以及SpringMVC框架来进行中间组件的分层设计,在图计算方面使用GraphX进行数据的建模与分布式并行计算;
在数据可视化与结果展示方面使用可视化框架JQuery来进行展示;
所述将爬虫分为数据解析和新目标生成两个阶段由爬虫框架完成,包括下载器、页面处理器、规划器、生成器组件构成;
所述数据解析阶段由下载器和页面处理器完成,所述下载器负责从网上下载页面,所述页面处理器负责页面的解析工作,抽取有用的信息,以及发现链接;
所述新目标生成由规划器和生成器完成,所述规划器负责管理待抓去的URL以及去重的工作,所述生成器负责抽取结果的处理,包括计算、数据存储到文件、数据库,所述生成器将数据保存至MySQL数据库中;
上述四个组件由crawler联系,crawler是爬虫框架的核心,也是爬虫框架的入口,所述crawler封装了爬虫的创建、启动、停止,多线程。
4.如权利要求1所述的一种高度解耦可动态管理爬虫的方法,其特征在于,还包括:
所述主机端运行任务,按照资源调度算法通过消息队列模块发送给资源充足的客户端,客户端接收到任务信息,通过爬虫协议核心转换成可执行信息并由爬虫运行模块运行,最后获取数据,还包括:
消息队列模块采用调度算法进行任务池界划分,将网络分割成若干个单元区域,每个单元称为超立方体;
对网络中的资源进行个体网格定位,删除聚集密度大的个体;
计算适应度,采用网格排名,网格拥挤距离来分配调度策略的适应度;
客户端环境选择,通过从以前的种群和新创建的种群中选择最佳能源调度策略来实现一个近似的、分布良好的归档集。
5.如权利要求1所述的一种高度解耦可动态管理爬虫的方法,其特征在于,还包括:
所述主机端获取数据和新任务,存储并更新任务池,还包括:
在下发更新命令之前,控制器需要为可串接流计算出新路径的路径段串接方案;
使用源路由技术将数据包快速迁移到由路径段串联定义出的新路径上,入口交换机为进入网络的每个数据包头部添加路径段的信息,网络中间交换机匹配数据包头部携带的路径段信息,按照路径段定义的转发规则处理数据包;
协同更新机制采用源路由技术转发可串接流的数据包,具体来说,入口交换机将可串接出新路径的一组路径段信息添加到数据包的头域;
控制器需要在广域网链路带宽资源的容量限制下,协调所有传输请求在多个时隙和不同路径的传输速率分配;
当每个新的传输请求被提交到系统时,控制器首先调用流量工程算法尝试为其计算带宽分配方案并评估在完成期限之前的传输完成情况,然后根据算法得到的传输完成情况以最大化系统收益为准则决定是否接纳该请求;
若某个传输请求能够在指定的时间期限前完成,系统将获得与该请求关联的全部收益;否则,系统收益取决于该请求的完成期限类型和具体的传输完成情况;
基于带权网络拓扑图计算多棵最小权重斯坦纳树,考虑与链路剩余带宽量和负载量因素有关的任务池权重,采用多次迭代的方式计算所需斯坦纳树,在迭代计算中动态更新任务池的权重。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110095378.4A CN112818198B (zh) | 2021-01-25 | 2021-01-25 | 一种高度解耦可动态管理爬虫的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110095378.4A CN112818198B (zh) | 2021-01-25 | 2021-01-25 | 一种高度解耦可动态管理爬虫的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112818198A true CN112818198A (zh) | 2021-05-18 |
CN112818198B CN112818198B (zh) | 2022-01-25 |
Family
ID=75859293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110095378.4A Active CN112818198B (zh) | 2021-01-25 | 2021-01-25 | 一种高度解耦可动态管理爬虫的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112818198B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115774564A (zh) * | 2022-11-03 | 2023-03-10 | 北京大学重庆大数据研究院 | 任务处理方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090204575A1 (en) * | 2008-02-07 | 2009-08-13 | Christopher Olston | Modular web crawling policies and metrics |
CN111222027A (zh) * | 2020-01-02 | 2020-06-02 | 南京邮电大学 | 基于微服务架构的分布式网络爬虫数据提取系统及方法 |
-
2021
- 2021-01-25 CN CN202110095378.4A patent/CN112818198B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090204575A1 (en) * | 2008-02-07 | 2009-08-13 | Christopher Olston | Modular web crawling policies and metrics |
CN111222027A (zh) * | 2020-01-02 | 2020-06-02 | 南京邮电大学 | 基于微服务架构的分布式网络爬虫数据提取系统及方法 |
Non-Patent Citations (1)
Title |
---|
孙锐: "基于Hadoop的分布式网络爬虫系统的研究与实现", 《中国优秀博硕士学位论文全文数据库(硕士)》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115774564A (zh) * | 2022-11-03 | 2023-03-10 | 北京大学重庆大数据研究院 | 任务处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112818198B (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1956456B (zh) | 用于在网格计算系统中呈现资源要求的方法和设备 | |
CN107679192A (zh) | 多集群协同数据处理方法、系统、存储介质及设备 | |
CN103631922B (zh) | 基于Hadoop集群的大规模Web信息提取方法及系统 | |
CN102075402A (zh) | 虚拟网络映射处理方法和系统 | |
CN109818786A (zh) | 一种云数据中心应用可感知的分布式多资源组合路径最优选取方法 | |
CN102227121A (zh) | 基于机器学习的分布式缓存策略自适应切换方法及系统 | |
Rahman et al. | Replica selection strategies in data grid | |
Huo et al. | Multi-objective service composition model based on cost-effective optimization | |
CN105956723A (zh) | 基于数据挖掘的物流信息管理方法 | |
CN109151824A (zh) | 一种基于5g架构的图书馆数据服务扩展系统及方法 | |
CN106228263A (zh) | 基于大数据的物流信息化方法 | |
CN110119399A (zh) | 基于机器学习的业务流程优化方法 | |
CN102158533B (zh) | 基于QoS的分布式web服务选择方法 | |
CN110148039A (zh) | 一种众智网络智能数体需求匹配策略优化方法及系统 | |
Zhou et al. | Cost-aware partitioning for efficient large graph processing in geo-distributed datacenters | |
Azari et al. | A data replication algorithm for groups of files in data grids | |
Hendrickson et al. | Enhancing data locality by using terminal propagation | |
Ebadifard et al. | Federated geo-distributed clouds: optimizing resource allocation based on request type using autonomous and multi-objective resource sharing model | |
Lin et al. | A bottom-up tree based storage approach for efficient IoT data analytics in cloud systems | |
Mohammadi et al. | A fuzzy logic-based method for replica placement in the peer to peer cloud using an optimization algorithm | |
Mostafa et al. | An intelligent dynamic replica selection model within grid systems | |
CN105956816A (zh) | 物资运输信息智能处理方法 | |
Wang et al. | SD-SRF: An intelligent service deployment scheme for serverless-operated cloud-edge computing in 6G networks | |
CN112818198B (zh) | 一种高度解耦可动态管理爬虫的方法 | |
CN113766008A (zh) | mcs下动态调整存储容量的方法、系统、终端及存储介质 |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A highly decoupled method for dynamically managing Crawlers Effective date of registration: 20220614 Granted publication date: 20220125 Pledgee: China Construction Bank Suzhou Industrial Park sub branch Pledgor: SUZHOU ZHONGDIXING INFORMATION TECHNOLOGY CO.,LTD. Registration number: Y2022320010240 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |