CN112612939A - 一种爬虫部署方法、系统、装置、设备及存储介质 - Google Patents
一种爬虫部署方法、系统、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112612939A CN112612939A CN202011509553.1A CN202011509553A CN112612939A CN 112612939 A CN112612939 A CN 112612939A CN 202011509553 A CN202011509553 A CN 202011509553A CN 112612939 A CN112612939 A CN 112612939A
- Authority
- CN
- China
- Prior art keywords
- crawler
- directory
- server
- slave
- incremental
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 238000011161 development Methods 0.000 claims abstract description 42
- 238000012544 monitoring process Methods 0.000 claims abstract description 41
- 230000001360 synchronised effect Effects 0.000 claims description 18
- 230000007246 mechanism Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 9
- 238000009826 distribution Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 3
- 230000009193 crawling Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000013515 script Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 3
- 241000270322 Lepidosauria Species 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种爬虫部署方法、系统、装置、设备及存储介质,包括:利用本地的目录监测工具对本地的爬虫目录进行监测,以确定爬虫目录中由开发平台向爬虫目录发布爬虫项目引起的增量文件;利用本地的增量同步工具将所述增量文件同步至从服务器,以更新从服务器的爬虫目录;基于预设任务分配规则,将爬虫项目对应的爬虫任务分配至从服务器,以便从服务器基于从服务器的爬虫目录执行主服务器分配的爬虫任务。本申请通过在主服务器和从服务器搭建目录监测和增量同步架构以实现由开发平台向服务器集群中的爬虫目录发布的爬虫项目的实时增量同步,提高了服务器集群间的爬虫项目的增量同步效率及精确度。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种爬虫部署方法、系统、装置、设备及存储介质。
背景技术
随着网络的迅速发展,互联网成为大量信息的载体,如何高效地从海量的信息中提取并利用这些信息成为巨大的挑战,网络爬虫技术应运而生并迅速发展,但由于网络中数据量庞大,不可能只靠一台服务器运行所有爬虫项目,在此背景下,分布式爬虫的优势就展现出来了。分布式爬虫部署将同一或多个个爬虫任务分给多个服务器同步运行,然后整合各个服务器爬取到的信息数据,提高了爬取效率,然而在开发过程中,爬虫版本的迭代速度非常快,在部署运行分布式爬虫的过程中,需要对爬虫项目进行实时同步,现有技术中通过人工编写脚本实现同步的效率较低且容易出现脚本漏洞,导致个别目录或文件无法同步。
发明内容
有鉴于此,本发明的目的在于提供一种爬虫部署方法、系统、装置、设备及存储介质,能够提高服务器集群间的爬虫项目的增量同步的效率和精确度,进一步提高爬取效率。其具体方案如下:
本申请的第一方面提供了一种爬虫部署方法,包括:
利用本地的目录监测工具对本地的爬虫目录进行监测,以确定所述爬虫目录中由开发平台向所述爬虫目录发布爬虫项目引起的增量文件;
利用本地的增量同步工具将所述增量文件同步至从服务器,以更新所述从服务器的爬虫目录;
基于预设任务分配规则,将所述爬虫项目对应的爬虫任务分配至所述从服务器,以便所述从服务器基于所述从服务器的爬虫目录执行所述主服务器分配的爬虫任务。
可选的,所述利用本地的目录监测工具对本地的爬虫目录进行监测,以确定所述爬虫目录中由开发平台向所述爬虫目录发布爬虫项目引起的增量文件,包括:
利用本地的Sersync组件对本地的爬虫目录进行监测;
当监测到所述爬虫目录发生变化时,记录开发平台向所述爬虫目录发布爬虫项目引起变化的文件,以得到增量文件。
可选的,所述利用本地的增量同步工具将所述增量文件同步至从服务器,以更新所述从服务器的爬虫目录,包括:
利用本地的Rsync组件向所述从服务器发送同步命令,以便所述从服务器接收所述同步命令后返回增量文件请求;
接收所述从服务器返回的所述增量文件请求,并基于Rsync协议将所述增量文件发送至所述从服务器,以更新所述从服务器的爬虫目录。
可选的,所述基于Rsync协议将所述增量文件发送至所述从服务器,以更新所述从服务器的爬虫目录之前,还包括:
通过所述Sersync组件对所述爬虫项目的临时文件和重复文件进行过滤。
可选的,所述接收所述从服务器返回的所述增量文件请求,并基于Rsync协议将所述增量文件发送至所述从服务器,以更新所述从服务器的爬虫目录之后,还包括:
判断所述增量文件是否同步成功,若否,则对所述增量文件进行重新同步,以实现所述本地的爬虫目录与所述从服务器的爬虫目录的增量同步。
可选的,所述判断所述增量文件是否同步成功,若否,则对所述增量文件进行重新同步,以实现所述本地的爬虫目录与所述从服务器的爬虫目录的增量同步,包括:
利用所述Sersync组件的出错处理机制判断所述增量文件是否同步成功,若否,则对所述增量文件进行第一次重新同步;
利用所述出错处理机制判断所述第一次重新同步是否成功,若否,则在预设时间对第一次重新同步失败的增量文件进行第二次重新同步。
本申请的第二方面提供了一种爬虫部署系统,包括开发平台、主服务器和从服务器,其中:
所述开发平台,用于创建爬虫项目,并通过Scrapyd客户端将所述爬虫项目发布至所述主服务器中的爬虫目录;
所述主服务器上设有Sersync组件和Rsync组件,用于利用所述Sersync组件对所述爬虫目录进行监测,以确定所述爬虫目录中由所述开发平台向所述爬虫目录发布爬虫项目引起的增量文件,并利用所述Rsync组件将所述增量文件同步至所述从服务器,以更新所述从服务器的爬虫目录,以及基于预设任务分配规则,将所述爬虫项目对应的爬虫任务分配至所述从服务器;
所述从服务器,用于通过Rsync守护进程接收所述主服务器发送的所述增量文件,并在Scrapyd框架的控制下执行所述主服务器发送的爬虫任务。
本申请的第三方面提供了一种爬虫部署装置,包括:
监测模块,用于利用本地的目录监测工具对本地的爬虫目录进行监测,以确定所述爬虫目录中由开发平台向所述爬虫目录发布爬虫项目引起的增量文件;
同步模块,用于利用本地的增量同步工具将所述增量文件同步至从服务器,以更新所述从服务器的爬虫目录;
任务分配模块,用于基于预设任务分配规则,将所述爬虫项目对应的爬虫任务分配至所述从服务器,以便所述从服务器基于所述从服务器的爬虫目录执行所述主服务器分配的爬虫任务。
本申请的第四方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述爬虫部署方法。
本申请的第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述爬虫部署方法。
本申请中,先利用本地的目录监测工具对本地的爬虫目录进行监测,以确定所述爬虫目录中由开发平台向所述爬虫目录发布爬虫项目引起的增量文件,然后利用本地的增量同步工具将所述增量文件同步至从服务器,以更新所述从服务器的爬虫目录,最后基于预设任务分配规则,将所述爬虫项目对应的爬虫任务分配至所述从服务器,以便所述从服务器基于所述从服务器的爬虫目录执行所述主服务器分配的爬虫任务。可见,本申请通过在主服务器和从服务器搭建目录监测和增量同步架构以实现由开发平台向服务器集群中的爬虫目录发布的爬虫项目的实时增量同步,提高了服务器集群间的爬虫项目的增量同步的效率和精确度,进一步提高了爬取的效率和精确度,同时也提高了爬虫系统的可扩展性及调度能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的爬虫部署方案所适用的系统框架示意图;
图2为本申请提供的一种爬虫部署方法流程图;
图3为本申请提供的一种具体的爬虫部署方法的框架示意图;
图4为本申请提供的一种具体的爬虫部署方法示意图;
图5为本申请提供的一种爬虫部署装置结构示意图;
图6为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,服务器在搭建好爬虫运行环境对集群要运行的爬虫项目进行同步时多通过人工编写脚本实现同步,上述方法使得爬虫项目的同步效率较低且容易出现脚本漏洞,导致个别目录或文件无法同步,进而降低爬虫效率。为了克服上述技术问题,本申请提供了一种爬虫部署方案,能够提高服务器集群间的爬虫项目的增量同步的效率和精确度,进一步提高爬取效率。
本申请的爬虫部署方案中,采用的系统框架具体可以参见图1所示,具体可以包括主服务器01、与主服务器01建立通信连接的若干数量的从服务器02及开发平台03。
本申请中,主服务器01和与主服务器01建立通信连接的若干数量的从服务器02构成服务器集群,通过所述服务器集群运行由开发平台03进行开发并打包发布到所述主服务器01上的爬虫项目,其中,一个主服务器为一个Master节点,一个从服务器为一个Node节点,一个服务器集群中可以有一个或者多个Master节点,提高了系统的扩展性,同样的也可以有一个或者多个Node节点,可以同时在一个或者多个开发环境下开发爬虫项目并发布在所述主服务器上。所述主服务器01上设有Sersync组件和Rsync组件,用于利用所述Sersync组件对所述爬虫目录进行监测,以确定所述爬虫目录中由所述开发平台向所述爬虫目录发布爬虫项目引起的增量文件,并利用所述Rsync组件将所述增量文件同步至所述从服务器,以更新所述从服务器的爬虫目录,以及基于预设任务分配规则,将所述爬虫项目对应的爬虫任务分配至所述从服务器;所述从服务器02上设有Rsync组件和Scrapyd框架,用于通过Rsync守护进程接收所述主服务器发送的所述增量文件,并在Scrapyd框架的控制下执行所述主服务器发送的爬虫任务;所述开发平台03,用于创建爬虫项目,并通过Sersync-client将所述爬虫项目发布至所述主服务器中的爬虫目录。
图2为本申请实施例提供的一种爬虫部署方法流程图,图3为本申请提供的一种具体的爬虫部署方法的框架示意图。参见图2和图3所示,该爬虫部署方法包括:
S11:利用本地的目录监测工具对本地的爬虫目录进行监测,以确定所述爬虫目录中由开发平台向所述爬虫目录发布爬虫项目引起的增量文件。
本实施例中,通过在主服务器上搭建目录监测工具对发布在主服务器上的爬虫项目的文件目录进行实时监测,由于爬虫版本的迭代更新或爬取目标的脚本代码的改变使得发布在主服务器上的爬虫项目执行爬虫任务时出现遗漏,为了保证爬取结果的准确性,需要在开发平台对爬虫项目进行相应的增删改等处理,开发平台的爬虫项目发生改变后主服务器对应的爬虫项目目录就会发生相应的改变,为了能准确检测到上述改变,需要在主服务器上搭建目录监测工具,利用所述目录监测工具对所述主服务器上的爬虫项目目录进行实时监控,当所述爬虫项目目录发生变化时记录下改变的目录文件,以得到所述爬虫目录中由开发平台向所述爬虫目录发布爬虫项目引起的增量文件,上述增量文件的表现形式可以是代码的增量。
不难理解的是,本实施例中的爬虫项目可以在Python开发环境中进行开发,Python爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序,其中,Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,可以用于用于抓取web站点并从页面中提取结构化的数据,Scrapyd是可以使用JSONAPI部署和运行Scrapy爬虫的应用程序,Scrapyd-client是Scrapyd的客户端,提供常规的scrapyd-client和scrapyd-deploy用来发布Scrapy项目到主服务器。本实施例在Python开发环境中开发爬虫项目并利用Scrapyd-client将所述爬虫项目发布到所述主服务器,如图3所述,所述主服务器可以同时运行多个爬虫项目,因此可以同时开发并发布多个爬虫项目到所述主服务器。另外,可以直接在所述主服务器上配置Python开发环境进行项目开发及打包发布,但当所述主服务器是云服务器时,可以在所述云服务器之外的开发环境中开发并打包发布在所述云服务器上运行。
S12:利用本地的增量同步工具将所述增量文件同步至从服务器,以更新所述从服务器的爬虫目录。
本实施例中,在确定了所述爬虫目录中由开发平台向所述爬虫目录发布爬虫项目引起的增量文件后,为了使从服务器的爬虫项目目录与所述主服务器的爬虫项目目录保持一致,从而保证所述从服务器执行爬虫任务获得更加完善和准确的信息,需要将所述增量文件发送至所述从服务器,使得所述从服务器根据所述增量文件更新自身的爬虫项目目录,本实施例中在所述主服务器上搭载增量同步架构,当所述目录监测工具监测到所述主服务器上的爬虫项目目录发生变化时,记录下对应的增量文件,然后利用所述主服务器上的增量同步工具将所述增量文件发送到所述从服务器,以更新所述从服务器的爬虫目录,也即实现所述主服务器的爬虫项目目录与所述从服务器的爬虫项目目录的实时增量同步。需要说明的是,为了能接收所述主服务器利用所述增量同步工具发送的增量文件,所述从服务器上需要搭载与所述主服务器上的增量同步工具对应的同步模块,以便能更高效对所述从服务器的爬虫目录进行更新。
S13:基于预设任务分配规则,将所述爬虫项目对应的爬虫任务分配至所述从服务器,以便所述从服务器基于所述从服务器的爬虫目录执行所述主服务器分配的爬虫任务。
本实施例中,开发平台将开发好的爬虫项目发布在所述主服务上,所述主服务器将所述爬虫项目按照负载均衡原则分发给不同的从服务器,所述从服务器基于自身的更新后的爬虫目录根据所述主服务器分配的爬虫子任务进行爬取并将爬取结果反馈给所述主服务器,上述爬取过程也即分布式爬虫的爬取过程。在一个服务器集群中,可以存在一个主服务器也可以存在多个主服务器,相应的也可以只有一个或多个从服务器,根据爬虫项目的数量及爬虫任务的多少自主分配和设置,上述部署方法提高了系统的扩展性。本实施例利用Scrapy爬虫框架进行爬取,它是基于twisted(用Python实现的基于事件驱动的网络引擎框架)异步网络库实现的,具有爬取效率高、爬取稳定性强和爬取广度大等优点,且具有可定制性,因此在所述从服务器上安装Scrapyd以控制所述从服务器执行爬虫任务。
可见,本申请实施例通过在主服务器和从服务器搭建目录监测和增量同步架构以实现由开发平台向服务器集群中的爬虫目录发布的爬虫项目的实时增量同步,提高了服务器集群间的爬虫项目的增量同步的效率和精确度,进一步提高了爬取的效率和精确度,同时也提高了爬虫系统的可扩展性及调度能力。
图4为本申请实施例提供的一种爬虫部署方法流程图。参见图4所示,该爬虫部署方法包括:
S21:利用本地的Sersync组件对本地的爬虫目录进行监测,当监测到所述爬虫目录发生变化时,记录开发平台向所述爬虫目录发布爬虫项目引起变化的文件,以得到增量文件。
本实施例中,在所述主服务器上搭载的目录监测工具为Sersync,以对所述主服务器的爬虫目录进行监测并得到增量文件,具体的,在主服务器上配置Sersync,监控Scrapyd-client发布的项目所在目录,当监控到目录或文件发生变化时,将发生变化的目录或文件信息也即所述增量文件发送给所述主服务器上的增量同步工具。
需要说明的是,一般的目录监测工具例如Inotify只能记录下被监听的目录发生了增删改等变化,并不能记录具体是哪个文件或者哪个目录发生了变化,但本申请实施例为了提高同步的效率,避免未发生变化的目录文件也被同步,采用Sersync组件对本地的爬虫目录进行监测。Sersync基于Inotify开发,它可以记录下被监听目录中发生的变化,包括增加、删除、修改具体某一个文件或目录等。
S22:利用本地的Rsync组件向所述从服务器发送同步命令,以便所述从服务器接收所述同步命令后返回增量文件请求。
S23:接收所述从服务器返回的所述增量文件请求,并基于Rsync协议将所述增量文件发送至所述从服务器,以更新所述从服务器的爬虫目录。
本实施例中,当所述Sersync组件记录下所述增量文件,说明所述主服务器上的爬虫目录发生了变化,所述从服务器上的爬虫目录也应该发生相应的改变,所述从服务器的爬虫目录的更新也即所述从服务器的爬虫目录与所述主服务器的爬虫目录的增量同步可以由从服务器自主选择同步也可以被动接受同步。在一种实施例中,当所述Sersync组件记录下所述增量文件并将所述增量文件发送至所述主服务器上的增量同步工具Rsync后,基于所述增量文件向所述从服务器发送同步命令,所述从服务器接收到所述同步命令后在决定接受增量同步的情况下,向所述主服务器返回相应的增量文件请求,所述主服务器在收到上述增量文件请求后,基于Rsync协议将所述增量文件发送至所述从服务器,所述从服务器启动Rsync守护进程以接收所述主服务器发送的增量文件并基于所述增量文件对所述从服务器的爬虫目录进行更新,上述启动Rsync守护进程也即将位于所述从服务器上的Rsync配置为daemon运行模式。在另一种实施例中,当所述Sersync组件记录下所述增量文件并将所述增量文件发送至所述主服务器上的增量同步工具Rsync后,所述Rsync组件直接将所述增量文件发送至所述从服务器,以使得所述从服务器被动地将所述增量文件同步至自身的爬虫目录。
进一步的,Sersync可以对linux系统文件系统产生的临时文件和重复文件进行过滤,在同步的过程中避免将爬虫目录的临时文件和重复文件也进行同步,因此在基于Rsync协议将所述增量文件发送至所述从服务器,以更新所述从服务器的爬虫目录之前,可以利用Sersync自身的过滤能力对爬虫项目的临时文件和重复文件进行过滤,节省了运行时耗和网络资源,同步实时性强。需要说明的是,Rsync是linux系统下的数据镜像备份工具,使用快速增量备份工具Rsync可以远程同步、本地复制或者与其他Rsync主机同步。Rsync可使用SSH(Secure Shell,安全壳协议)和Rsync两种通信协议实现同步,生产环境使用SSH方式很不安全,而Rsync方式恰好解决了这一问题,安全性好,因此,本实施例中的利用Rsync组件进行增量同步的过程中采用Rsync通信协议。
S24:利用所述Sersync组件的出错处理机制判断所述增量文件是否同步成功,若否,则对所述增量文件进行第一次重新同步。
S25:利用所述出错处理机制判断所述第一次重新同步是否成功,若否,则在预设时间对第一次重新同步失败的增量文件进行第二次重新同步。
本实施例中,由于存在网络错误等影响同步进程的因素,无法实现所述从服务器的爬出目录与所述主服务器的爬虫目录的增量同步,因此需要出错处理机制对所述增量文件的同步结果进行检测,以保证所述增量文件能成功同步至所述从服务器。本实施例利用Sersync自带的出错处理机制,通过失败队列对出错的增量文件重新同步,如果仍旧失败,则按设定时长对同步失败的文件重新同步。具体的,首先在所述主服务器的Rsync组件向所述从服务器发送同步命令后,通过Sersync出错处理机制判断本次增量文件是否同步成功,如果失败,则将所述从设备接收到的增量文件进行第一次重新同步,并同时利用Sersync出错处理机制检测所述第一次重新同步是否成功,如果仍然失败,则需要再次进行同步,但在同步的过程中可能存在网络延迟使得Sersync出错处理机制检测结果为同步失败,为了增强系统的容错率,本实施例在预设时间对第一次重新同步失败的增量文件进行第二次重新同步,所述预设时间根据实际业务需求设定,本实施例不进行限定,如在检测到第一次重新同步失败后5分钟进行第二次重新同步。
S26:基于预设任务分配规则,将所述爬虫项目对应的爬虫任务分配至所述从服务器,以便所述从服务器基于所述从服务器的爬虫目录执行所述主服务器分配的爬虫任务。
本实施例中,关于步骤S26的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例通过Sersync+Rsync架构实现所述主服务器的爬虫项目目录与所述从服务器的爬虫项目的实时增量同步,同时基于Sersync的出错处理机制实时检测是否同步成功,在同步失败的情况下进行重新同步,进一步提高了上述增量同步架构的可靠性。
参见图5所示,本申请实施例还相应公开了一种爬虫部署装置,包括:
监测模块11,用于利用本地的目录监测工具对本地的爬虫目录进行监测,以确定所述爬虫目录中由开发平台向所述爬虫目录发布爬虫项目引起的增量文件;
同步模块12,用于利用本地的增量同步工具将所述增量文件同步至从服务器,以更新所述从服务器的爬虫目录;
任务分配模块13,用于基于预设任务分配规则,将所述爬虫项目对应的爬虫任务分配至所述从服务器,以便所述从服务器基于所述从服务器的爬虫目录执行所述主服务器分配的爬虫任务。
可见,本申请实施例通过在主服务器和从服务器搭建目录监测和增量同步架构以实现由开发平台向服务器集群中的爬虫目录发布的爬虫项目的实时增量同步,提高了服务器集群间的爬虫项目的增量同步的效率和精确度,进一步提高了爬取的效率和精确度,同时也提高了爬虫系统的可扩展性及调度能力。
在一些具体实施例中,所述监测模块11,具体用于利用本地的Sersync组件对本地的爬虫目录进行监测,当监测到所述爬虫目录发生变化时,记录开发平台向所述爬虫目录发布爬虫项目引起变化的文件,以得到增量文件。
在一些具体实施例中,所述同步模块12,具体包括:
命令发送单元,用于利用本地的Rsync组件向所述从服务器发送同步命令,以便所述从服务器接收所述同步命令后返回增量文件请求;
请求接收单元,用于接收所述从服务器返回的所述增量文件请求,并基于Rsync协议将所述增量文件发送至所述从服务器,以更新所述从服务器的爬虫目录。
在一些具体实施例中,所述会话爬虫部署装置还包括:
第一次重新同步模块,用于判断所述增量文件是否同步成功,若否,则对所述增量文件进行重新同步,以实现所述本地的爬虫目录与所述从服务器的爬虫目录的增量同步;
第二次重新同步模块,用于利用所述出错处理机制判断所述第一次重新同步是否成功,若否,则在预设时间对第一次重新同步失败的增量文件进行第二次重新同步。
进一步的,本申请实施例还提供了一种电子设备。图6是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的爬虫部署方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及爬虫目录、增量文件223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量爬虫目录、增量文件223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的爬虫部署方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的爬虫部署方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的爬虫部署方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种爬虫部署方法,其特征在于,应用于主服务器,包括:
利用本地的目录监测工具对本地的爬虫目录进行监测,以确定所述爬虫目录中由开发平台向所述爬虫目录发布爬虫项目引起的增量文件;
利用本地的增量同步工具将所述增量文件同步至从服务器,以更新所述从服务器的爬虫目录;
基于预设任务分配规则,将所述爬虫项目对应的爬虫任务分配至所述从服务器,以便所述从服务器基于所述从服务器的爬虫目录执行所述主服务器分配的爬虫任务。
2.根据权利要求1所述的爬虫部署方法,其特征在于,所述利用本地的目录监测工具对本地的爬虫目录进行监测,以确定所述爬虫目录中由开发平台向所述爬虫目录发布爬虫项目引起的增量文件,包括:
利用本地的Sersync组件对本地的爬虫目录进行监测;
当监测到所述爬虫目录发生变化时,记录开发平台向所述爬虫目录发布爬虫项目引起变化的文件,以得到增量文件。
3.根据权利要求2所述的爬虫部署方法,其特征在于,所述利用本地的增量同步工具将所述增量文件同步至从服务器,以更新所述从服务器的爬虫目录,包括:
利用本地的Rsync组件向所述从服务器发送同步命令,以便所述从服务器接收所述同步命令后返回增量文件请求;
接收所述从服务器返回的所述增量文件请求,并基于Rsync协议将所述增量文件发送至所述从服务器,以更新所述从服务器的爬虫目录。
4.根据权利要求3所述的爬虫部署方法,其特征在于,所述基于Rsync协议将所述增量文件发送至所述从服务器,以更新所述从服务器的爬虫目录之前,还包括:
通过所述Sersync组件对所述爬虫项目的临时文件和重复文件进行过滤。
5.根据权利要求3所述的爬虫部署方法,其特征在于,所述接收所述从服务器返回的所述增量文件请求,并基于Rsync协议将所述增量文件发送至所述从服务器,以更新所述从服务器的爬虫目录之后,还包括:
判断所述增量文件是否同步成功,若否,则对所述增量文件进行重新同步,以实现所述本地的爬虫目录与所述从服务器的爬虫目录的增量同步。
6.根据权利要求5所述的爬虫部署方法,其特征在于,所述判断所述增量文件是否同步成功,若否,则对所述增量文件进行重新同步,以实现所述本地的爬虫目录与所述从服务器的爬虫目录的增量同步,包括:
利用所述Sersync组件的出错处理机制判断所述增量文件是否同步成功,若否,则对所述增量文件进行第一次重新同步;
利用所述出错处理机制判断所述第一次重新同步是否成功,若否,则在预设时间对第一次重新同步失败的增量文件进行第二次重新同步。
7.一种爬虫部署系统,其特征在于,包括开发平台、主服务器和从服务器,其中:
所述开发平台,用于创建爬虫项目,并通过Scrapyd客户端将所述爬虫项目发布至所述主服务器中的爬虫目录;
所述主服务器上设有Sersync组件和Rsync组件,用于利用所述Sersync组件对所述爬虫目录进行监测,以确定所述爬虫目录中由所述开发平台向所述爬虫目录发布爬虫项目引起的增量文件,并利用所述Rsync组件将所述增量文件同步至所述从服务器,以更新所述从服务器的爬虫目录,以及基于预设任务分配规则,将所述爬虫项目对应的爬虫任务分配至所述从服务器;
所述从服务器,用于通过Rsync守护进程接收所述主服务器发送的所述增量文件,并在Scrapyd框架的控制下执行所述主服务器发送的爬虫任务。
8.一种爬虫部署装置,其特征在于,包括:
监测模块,用于利用本地的目录监测工具对本地的爬虫目录进行监测,以确定所述爬虫目录中由开发平台向所述爬虫目录发布爬虫项目引起的增量文件;
同步模块,用于利用本地的增量同步工具将所述增量文件同步至从服务器,以更新所述从服务器的爬虫目录;
任务分配模块,用于基于预设任务分配规则,将所述爬虫项目对应的爬虫任务分配至所述从服务器,以便所述从服务器基于所述从服务器的爬虫目录执行所述主服务器分配的爬虫任务。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至6任一项所述的爬虫部署方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至6任一项所述的爬虫部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011509553.1A CN112612939A (zh) | 2020-12-18 | 2020-12-18 | 一种爬虫部署方法、系统、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011509553.1A CN112612939A (zh) | 2020-12-18 | 2020-12-18 | 一种爬虫部署方法、系统、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112612939A true CN112612939A (zh) | 2021-04-06 |
Family
ID=75240962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011509553.1A Pending CN112612939A (zh) | 2020-12-18 | 2020-12-18 | 一种爬虫部署方法、系统、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612939A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254747A (zh) * | 2021-06-09 | 2021-08-13 | 南京北斗创新应用科技研究院有限公司 | 基于分布式网络爬虫的地理空间数据获取系统及方法 |
CN113419767A (zh) * | 2021-06-22 | 2021-09-21 | 山东浪潮通软信息科技有限公司 | 一种通过移动端更新Linux服务器内应用的方法、设备及介质 |
CN115348272A (zh) * | 2022-08-15 | 2022-11-15 | 四川虹美智能科技有限公司 | 服务器产出物的自动化同步方法及装置 |
CN115774564A (zh) * | 2022-11-03 | 2023-03-10 | 北京大学重庆大数据研究院 | 任务处理方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6418453B1 (en) * | 1999-11-03 | 2002-07-09 | International Business Machines Corporation | Network repository service for efficient web crawling |
CN106776768A (zh) * | 2016-11-23 | 2017-05-31 | 福建六壬网安股份有限公司 | 一种分布式爬虫引擎的url抓取方法及系统 |
CN109992707A (zh) * | 2019-03-18 | 2019-07-09 | 广州视源电子科技股份有限公司 | 一种数据爬取方法、装置、存储介质及服务器 |
CN110069462A (zh) * | 2019-04-11 | 2019-07-30 | 苏州浪潮智能科技有限公司 | 一种不同服务器之间批量镜像文件一致性核对方法及系统 |
CN111314129A (zh) * | 2020-02-13 | 2020-06-19 | 上海凯岸信息科技有限公司 | 一种基于文件式存储服务高可用架构 |
-
2020
- 2020-12-18 CN CN202011509553.1A patent/CN112612939A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6418453B1 (en) * | 1999-11-03 | 2002-07-09 | International Business Machines Corporation | Network repository service for efficient web crawling |
CN106776768A (zh) * | 2016-11-23 | 2017-05-31 | 福建六壬网安股份有限公司 | 一种分布式爬虫引擎的url抓取方法及系统 |
CN109992707A (zh) * | 2019-03-18 | 2019-07-09 | 广州视源电子科技股份有限公司 | 一种数据爬取方法、装置、存储介质及服务器 |
CN110069462A (zh) * | 2019-04-11 | 2019-07-30 | 苏州浪潮智能科技有限公司 | 一种不同服务器之间批量镜像文件一致性核对方法及系统 |
CN111314129A (zh) * | 2020-02-13 | 2020-06-19 | 上海凯岸信息科技有限公司 | 一种基于文件式存储服务高可用架构 |
Non-Patent Citations (1)
Title |
---|
中兔西维亚: "rsync+sersync 远程文件实时同步工具简介及配置原理", 《CSDN》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254747A (zh) * | 2021-06-09 | 2021-08-13 | 南京北斗创新应用科技研究院有限公司 | 基于分布式网络爬虫的地理空间数据获取系统及方法 |
CN113254747B (zh) * | 2021-06-09 | 2021-10-15 | 南京北斗创新应用科技研究院有限公司 | 基于分布式网络爬虫的地理空间数据获取系统及方法 |
CN113419767A (zh) * | 2021-06-22 | 2021-09-21 | 山东浪潮通软信息科技有限公司 | 一种通过移动端更新Linux服务器内应用的方法、设备及介质 |
CN113419767B (zh) * | 2021-06-22 | 2022-07-26 | 浪潮通用软件有限公司 | 一种通过移动端更新Linux服务器内应用的方法、设备及介质 |
CN115348272A (zh) * | 2022-08-15 | 2022-11-15 | 四川虹美智能科技有限公司 | 服务器产出物的自动化同步方法及装置 |
CN115774564A (zh) * | 2022-11-03 | 2023-03-10 | 北京大学重庆大数据研究院 | 任务处理方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112612939A (zh) | 一种爬虫部署方法、系统、装置、设备及存储介质 | |
US11669409B2 (en) | Application migration between environments | |
US11720456B2 (en) | Automatic configuration of a recovery service | |
KR101970839B1 (ko) | 서비스의 2차 위치에서의 작업의 재생 기법 | |
CN109491776B (zh) | 任务编排方法和系统 | |
WO2020072338A1 (en) | Data backup and disaster recovery between environments | |
Liu et al. | A data transfer framework for large-scale science experiments | |
US5822531A (en) | Method and system for dynamically reconfiguring a cluster of computer systems | |
US20190391880A1 (en) | Application backup and management | |
US20060259594A1 (en) | Progressive deployment and maintenance of applications on a set of peer nodes | |
JP2010518490A (ja) | 不定期接続されるアプリケーションのための同期フレームワーク | |
CN109446170B (zh) | 一种配置文件数据同步方法及设备 | |
CN111538590A (zh) | 一种基于cs架构的分布式数据采集方法及系统 | |
CN107465709B (zh) | 分布式镜像构建任务方法及装置、系统 | |
Cappos et al. | Stork: Package Management for Distributed VM Environments. | |
CN115344273B (zh) | 一种基于货架系统来运行应用软件的方法及系统 | |
CN109002263B (zh) | 存储容量的调整方法及装置 | |
CN116028463A (zh) | 搭建存储与计算分离的大数据平台的方法 | |
CN115604120A (zh) | 一种多云集群资源共享方法、装置、设备及存储介质 | |
CN114281600A (zh) | 一种容灾备份和容灾恢复方法、装置、设备及存储介质 | |
CN113934575A (zh) | 一种基于分布式拷贝的大数据备份系统及方法 | |
Bouabache et al. | Hierarchical replication techniques to ensure checkpoint storage reliability in grid environment | |
CN113157550A (zh) | 基于容器的漏洞环境管理方法、系统 | |
CN110837394A (zh) | 一种高可用配置版本仓库配置方法、终端及可读介质 | |
CN112468313B (zh) | 一种WebLogic集群快速部署的方法和系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210406 |
|
RJ01 | Rejection of invention patent application after publication |