CN111444412B - 网络爬虫任务的调度方法及装置 - Google Patents
网络爬虫任务的调度方法及装置 Download PDFInfo
- Publication number
- CN111444412B CN111444412B CN202010261408.XA CN202010261408A CN111444412B CN 111444412 B CN111444412 B CN 111444412B CN 202010261408 A CN202010261408 A CN 202010261408A CN 111444412 B CN111444412 B CN 111444412B
- Authority
- CN
- China
- Prior art keywords
- network address
- target
- address list
- crawling
- crawled
- 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
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种网络爬虫任务的调度方法及装置。其中,该方法包括:获取待爬取目标数据的初始网络地址列表;依据上述待爬取目标数据的优先级信息,将上述初始网络地址列表对应加入上述目标消息队列中,创建得到爬虫任务,其中,多个目标消息队列中的每个上述目标消息队列的优先级不同;在检测到指示执行上述爬虫任务的情况下,依据上述目标消息队列的优先级和上述初始网络地址列表爬取网页,获取目标网络地址列表;依据上述目标网络地址列表的优先级,将上述目标网络地址列表对应放入待爬取网络地址队列中;依据上述待爬取网络地址队列的优先级和上述目标网络地址列表爬取网页,直至无法获取得到目标网络地址列表。本发明解决了现有技术中的网络爬虫均未结合爬虫的优先级进行任务调度,导致网络爬虫爬取数据的效率较低的技术问题。
Description
技术领域
本发明涉及网络爬虫技术领域,具体而言,涉及一种网络爬虫任务的调度方法及装置。
背景技术
网络爬虫的基本原理是向网站/网络发起请求,获取资源后分析并提取有用数据,不同类型的网络爬虫,其实现原理也是不同的,但这些实现原理中,会存在很多共性。
例如,传统网络爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
现有的传统网络爬虫和聚焦网络爬虫,均通过将待爬取URL列表放入拥有先进先出基本功能的队列中,但是无法设定队列的优先级或者根据队列任务调度的优先级来实现优先级高则先消费,优先级低则后消费,这样就会导致消息过多的情况下,部分重要的消息消费很慢或发生阻塞,从而导致网络爬虫爬取数据的效率较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种网络爬虫任务的调度方法及装置,以至少解决现有技术中的网络爬虫均未结合爬虫的优先级进行任务调度,导致网络爬虫爬取数据的效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种网络爬虫任务的调度方法,包括:获取待爬取目标数据的初始网络地址列表;依据上述待爬取目标数据的优先级信息,将上述初始网络地址列表对应加入上述目标消息队列中,创建得到爬虫任务,其中,多个目标消息队列中的每个上述目标消息队列的优先级不同;在检测到指示执行上述爬虫任务的情况下,依据上述目标消息队列的优先级和上述初始网络地址列表爬取网页,获取目标网络地址列表;依据上述目标网络地址列表的优先级,将上述目标网络地址列表对应放入待爬取网络地址队列中;依据上述待爬取网络地址队列的优先级和上述目标网络地址列表爬取网页,直至无法获取得到目标网络地址列表。
可选的,在获取待爬取目标数据的初始网络地址列表之前,上述方法还包括:获取爬取需求信息,其中,上述爬取需求信息包括:爬取目标定义信息和/爬取目标描述信息;确定与上述爬取需求信息对应的待爬取目标数据。
可选的,在获取待爬取目标数据的初始网络地址列表之前,上述方法还包括:预先定义多个基于分布式流处理库的上述目标消息队列。
可选的,在获取目标网络地址列表之后,上述方法还包括:确定上述目标网络地址列表中上述待爬取目标数据对应的相关网络地址;删除上述目标网络地址列表中除上述相关网络地址之外的其他网络地址。
可选的,在根据上述目标消息队列的优先级和上述初始网络地址列表爬取网页之后,上述方法还包括:将已爬取的至少一个上述初始网络地址列表放入已爬取列表,其中,上述已爬取列表用于爬取去重处理和判断爬取进程。
根据本发明实施例的另一方面,还提供了一种网络爬虫任务的调度装置,包括:第一获取模块,用于获取待爬取目标数据的初始网络地址列表;任务创建模块,用于依据上述待爬取目标数据的优先级信息,将上述初始网络地址列表对应加入上述目标消息队列中,创建得到爬虫任务,其中,多个目标消息队列中的每个上述目标消息队列的优先级不同;第一爬取模块,用于在检测到指示执行上述爬虫任务的情况下,依据上述目标消息队列的优先级和上述初始网络地址列表爬取网页,获取目标网络地址列表;调度模块,用于依据上述目标网络地址列表的优先级,将上述目标网络地址列表对应放入待爬取网络地址队列中;第二爬取模块,用于依据上述待爬取网络地址队列的优先级和上述目标网络地址列表爬取网页,直至无法获取得到目标网络地址列表。
可选的,上述装置还包括:第二获取模块,用于获取爬取需求信息,其中,上述爬取需求信息包括:爬取目标定义信息和/爬取目标描述信息;确定模块,用于确定与上述爬取需求信息对应的待爬取目标数据。
可选的,上述装置还包括:队列定义模块,用于预先定义多个基于分布式流处理库的上述目标消息队列。
根据本发明实施例的另一方面,还提供了一种存储介质,上述存储介质包括存储的程序,其中,在上述程序运行时控制上述存储介质所在设备执行任意一项上述的网络爬虫任务的调度方法。
根据本发明实施例的另一方面,还提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行任意一项上述的网络爬虫任务的调度方法。
在本发明实施例中,通过获取待爬取目标数据的初始网络地址列表;依据上述待爬取目标数据的优先级信息,将上述初始网络地址列表对应加入上述目标消息队列中,创建得到爬虫任务,其中,多个目标消息队列中的每个上述目标消息队列的优先级不同;在检测到指示执行上述爬虫任务的情况下,依据上述目标消息队列的优先级和上述初始网络地址列表爬取网页,获取目标网络地址列表;依据上述目标网络地址列表的优先级,将上述目标网络地址列表对应放入待爬取网络地址队列中;依据上述待爬取网络地址队列的优先级和上述目标网络地址列表爬取网页,直至无法获取得到目标网络地址列表,达到了结合爬虫的优先级调度网络爬虫任务的目的,从而实现了提高网络爬虫爬取数据的效率的技术效果,进而解决了现有技术中的网络爬虫均未结合爬虫的优先级进行任务调度,导致网络爬虫爬取数据的效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种网络爬虫任务的调度方法的流程图;
图2是根据本发明实施例的一种可选的网络爬虫任务的调度方法的流程图;
图3是根据本发明实施例的一种网络爬虫任务的调度装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,为方便理解本发明实施例,下面将对本发明中所涉及的部分术语或名词进行解释说明:
Kafka,是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。
Topic,每条发布到Kafka集群中的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)。
Hadoop,是一个由Apache基金会所开发的分布式系统基础架构。
Goka,是一个采用Go编写用于Apache Kafka的分布式流处理库。
爬虫,网络爬虫的简称(又称为网页蜘蛛、网络机器人、网页追逐者、网络蚂蚁、自动索引、模拟程序或者蠕虫,网络爬虫是一个按照一定的规则自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成,可以代替人们自动化浏览网络中的信息,进行数据的采集与整理;其中,在互联网时代,网络爬虫主要是为搜索引擎提供最全面和最新的数据;在大数据时代,网络爬虫更是从互联网上采集数据的有利工具。网络爬虫的基本原理是向网站/网络发起请求,获取资源后分析并提取有用数据。
聚焦网络爬虫(Focused Crawler):又称主题网络爬虫(Topical Crawler),是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。
实施例1
根据本发明实施例,提供了一种网络爬虫任务的调度方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种网络爬虫任务的调度方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取待爬取目标数据的初始网络地址列表;
步骤S104,依据上述待爬取目标数据的优先级信息,将上述初始网络地址列表对应加入上述目标消息队列中,创建得到爬虫任务,其中,多个目标消息队列中的每个上述目标消息队列的优先级不同;
步骤S106,在检测到指示执行上述爬虫任务的情况下,依据上述目标消息队列的优先级和上述初始网络地址列表爬取网页,获取目标网络地址列表;
步骤S108,依据上述目标网络地址列表的优先级,将上述目标网络地址列表对应放入待爬取网络地址队列中;
步骤S110,依据上述待爬取网络地址队列的优先级和上述目标网络地址列表爬取网页,直至无法获取得到目标网络地址列表。
在本发明实施例中,通过获取待爬取目标数据的初始网络地址列表;依据上述待爬取目标数据的优先级信息,将上述初始网络地址列表对应加入上述目标消息队列中,创建得到爬虫任务,其中,多个目标消息队列中的每个上述目标消息队列的优先级不同;在检测到指示执行上述爬虫任务的情况下,依据上述目标消息队列的优先级和上述初始网络地址列表爬取网页,获取目标网络地址列表;依据上述目标网络地址列表的优先级,将上述目标网络地址列表对应放入待爬取网络地址队列中;依据上述待爬取网络地址队列的优先级和上述目标网络地址列表爬取网页,直至无法获取得到目标网络地址列表,达到了结合爬虫的优先级调度网络爬虫任务的目的,从而实现了提高网络爬虫爬取数据的效率的技术效果,进而解决了现有技术中的网络爬虫均未结合爬虫的优先级进行任务调度,导致网络爬虫爬取数据的效率较低的技术问题。
在本申请实施例中,网络爬虫的基本原理是向网站/网络发起请求,获取资源后分析并提取有用数据。从技术层面来说,网络爬虫就是通过程序模拟浏览器请求站点的行为,将站点返回的HTML代码/JSON数据/二进制数据(图片、视频)等资源爬取到本地,进而提取到自己需要的数据,并存放起来使用。从功能上来讲,网络爬虫一般分为数据采集,数据处理,数据储存三个部分。
本申请实施例采用Goka的消息队列与聚焦网络爬虫相结合的方案,待爬取URL列表放入的目标消息队列和待爬取网络地址队列即为Goka的消息队列,由于该Goka的消息队列实现支持主题优先级,即优先级高的主题优先消费,从而实现基于优先级和调度结合的爬虫方案。
作为一种可选的实施例,Kafka是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者在网站中的所有动作流数据,上述动作(例如,网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素,这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决,对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理,这是一个可行的解决方案。
由于Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。而Goka正是基于Go语言开发的Apache Kafka的分布式流处理库,Goka旨在降低构建高度可扩展且高度可用的微服务的复杂性。任何Goka应用程序的核心都是一个或多个代表应用程序状态的键值表。Goka提供了构建块,以可组合,可伸缩和容错的方式处理此类表。所有状态修改操作都在事件流中进行转换,从而确保按键顺序更新。只读操作可以直接访问应用程序表,从而提供最终一致的读取。
作为一种可选的实施例,在获取待爬取目标数据的初始网络地址列表之前,上述方法还包括:获取爬取需求信息,其中,上述爬取需求信息包括:爬取目标定义信息和/爬取目标描述信息;确定与上述爬取需求信息对应的待爬取目标数据。
在一种可选的实施例中,在获取待爬取目标数据的初始网络地址列表之前,上述方法还包括:预先定义多个基于分布式流处理库的上述目标消息队列。
在一种可选的实施例中,图2是根据本发明实施例的一种可选的网络爬虫任务的调度方法的流程图,如图2所示,本申请实施例实现原理及过程包括以下实现步骤:
步骤S202,对待爬取目标数据进行定义和描述。
首先要依据爬取需求定义网络爬虫的待爬取目标数据,以及与待爬取目标数据相关的描述信息。
步骤S204,获取初始网络地址列表。
步骤S206,创建爬虫任务,根据定义多个基于Goka的支持优先级的目标消息队列,将爬取目标不同的初始网络地址列表放入不同的目标消息队列中。
可选的,上述目标消息队列是基于Goka的支持主题优先级排序消息队列,根据初始的初始网络地址列表爬取网页,并获得新的目标网络地址列表,该目标网络地址列表需要过滤掉与爬取目标无关的链接,同时,也需要将已经爬取的目标网络地址存放到一个列表中,用于去重和判断爬取的进程。
在本申请实施例中,可以但不限于通过Priority字段来实现支持主题topic(定义队列结构体)的优先级,需要说明的是,目前本申请实施例中仅设置了高优先级和低优先级,在主题消费和等待时,可以根据Priority的值来作为主题先后消费顺序的判断条件。
步骤S208,将过滤后的URL放到待爬取的URL队列中,此队列是基于Goka的支持主题优先级排序消息队列。
步骤S210,从URL下载队列中,先根据确定主题优先级,再根据搜索算法确定URL的优先级,并确定下一步要抓取的目标网络地址。
需要说明的是,在进行消费时首先判断爬虫任务是否开启,如果开启则再去判断优先级,如果没有开启则结束;并且爬虫任务的优先级高则优先消费,反之则退后消费,即优先爬取在优先级高的目标消息队列中的目标网络地址网页。
步骤S212,从下一步要爬取的目标网络地址列表中,读取新的目标网络地址,然后依据新的目标网络地址爬取网页,并重复上述爬取过程。
步骤S214,当满足系统中设置的停止条件时,或无法获取新的目标网络地址时,停止此次爬虫,否则返回步骤S212。
在另一种可选的实施例中,在获取目标网络地址列表之后,即执行步骤S212之后,上述方法还包括:
步骤S302,确定上述目标网络地址列表中上述待爬取目标数据对应的相关网络地址;
步骤S304,删除上述目标网络地址列表中除上述相关网络地址之外的其他网络地址。
在本申请实施例中,在爬取完之后获取新的目标网络地址列表,同时过滤掉不满足需求的网络地址,将过滤后的目标网络地址列表根据爬取目标的不同再次放入到不同的基于Goka的支持优先级的消息队列,重复上述操作,直到符合停止条件。当到规定时刻时重复执行上述全部爬虫流程,且爬取站点新增符合爬取目标的内容。
在一种可选的实施例中,在根据上述目标消息队列的优先级和上述初始网络地址列表爬取网页之后,上述方法还包括:将已爬取的至少一个上述初始网络地址列表放入已爬取列表,其中,上述已爬取列表用于爬取去重处理和判断爬取进程。
本申请实施例通过将待爬取URL列表放入的队列,实现支持主题或消息优先级,在队列启动进行消费时,可根据优先级以及任务调度进行有序的爬虫,有效提高网络爬虫爬取数据的效率。
在本申请实施例中,消息队列通过如下方式实现主题优先级:
定义队列结构体,即主题topic:
在声明的结构体中,将通过Priority字段来实现支持主题topic(定义队列结构体)的优先级,目前只设置了高低两个层级,在主题消费和等待的时候会根据Priority的值来作为主题先后消费顺序的判断条件。当然,也可以设置多层级,根据具体业务相应设置即可。新建的队列方法可以但不限于如下所示:
在本申请实施例中,首先通过创建爬虫任务,根据定义多个基于Goka的支持优先级的消息队列,将爬取目标不同的URL列表放入不同的消息队列中,这里同时需要判断此URL的网页是否已经根据需求爬取,如果爬取则添加到已爬取列表,不再进行重复爬取。其次,消费队列在进行消费时首先判断爬虫任务是否开启,如果开启则再去判断优先级,优先级高则优先消费,反之则后消费,即优先爬取在优先级高的队列中的URL的网页。再次,在爬取完之后获取新的URL列表,同时过滤掉不满足需求的URL,将过滤后的URL列表根据爬取目标的不同再次放入到不同的基于Goka的支持优先级的消息队列,重复上述操作,直到符合停止条件。最后,系统实现定时任务,当到达定时任务执行时刻,执行上述流程。
在互联网数据防泄漏项目中应用了本申请实施例的基于优先级和调度结合的爬虫技术,该系统根据关键字合法爬取百度文库、豆丁文库等网站符合需求的文档,首先将各网站的关键字搜索URL加入到不同的队列,然后当队列启动时如果爬取任务开启则根据优先级进行消费爬取,反之则停止。通过基于优先级和调度结合进行爬虫,提高了系统的性能和爬取效率。
通过本申请上述实施例,根据需求对每个队列主题设定优先级,确保在不影响系统性能的前提下,优先消费优先级较高的信息,满足实用性与灵活性的要求;并且,根据需求针对不同的爬取目标URL加入不同优先级的队列,队列进行消费时进行有序爬取,同时针对已爬取过得URL放入到已爬取列表,不进行二次重复爬取,可以有效提高网络爬虫的爬取效率。
实施例2
根据本发明实施例,还提供了一种用于实施上述网络爬虫任务的调度方法的装置实施例,图3是根据本发明实施例的一种网络爬虫任务的调度装置的结构示意图,如图3所示,上述网络爬虫任务的调度装置,包括:第一获取模块30、任务创建模块32、第一爬取模块34、调度模块36和第二爬取模块38,其中:
第一获取模块30,用于获取待爬取目标数据的初始网络地址列表;任务创建模块32,用于依据上述待爬取目标数据的优先级信息,将上述初始网络地址列表对应加入上述目标消息队列中,创建得到爬虫任务,其中,多个目标消息队列中的每个上述目标消息队列的优先级不同;第一爬取模块34,用于在检测到指示执行上述爬虫任务的情况下,依据上述目标消息队列的优先级和上述初始网络地址列表爬取网页,获取目标网络地址列表;调度模块36,用于依据上述目标网络地址列表的优先级,将上述目标网络地址列表对应放入待爬取网络地址队列中;第二爬取模块38,用于依据上述待爬取网络地址队列的优先级和上述目标网络地址列表爬取网页,直至无法获取得到目标网络地址列表。
在一种可选的实施例中,上述装置还包括:第二获取模块,用于获取爬取需求信息,其中,上述爬取需求信息包括:爬取目标定义信息和/爬取目标描述信息;确定模块,用于确定与上述爬取需求信息对应的待爬取目标数据。
在一种可选的实施例中,上述装置还包括:队列定义模块,用于预先定义多个基于分布式流处理库的上述目标消息队列。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;或者,上述各个模块以任意组合的方式位于不同的处理器中。
此处需要说明的是,上述第一获取模块30、任务创建模块32、第一爬取模块34、调度模块36和第二爬取模块38对应于实施例1中的步骤S102至步骤S110,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在计算机终端中。
需要说明的是,本实施例的可选或优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
上述的网络爬虫任务的调度装置还可以包括处理器和存储器,上述第一获取模块30、任务创建模块32、第一爬取模块34、调度模块36和第二爬取模块38等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元,上述内核可以设置一个或以上。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本申请实施例,还提供了一种存储介质实施例。可选地,在本实施例中,上述存储介质包括存储的程序,其中,在上述程序运行时控制上述存储介质所在设备执行上述任意一种网络爬虫任务的调度方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中,上述存储介质包括存储的程序。
可选地,在程序运行时控制存储介质所在设备执行以下功能:获取待爬取目标数据的初始网络地址列表;依据上述待爬取目标数据的优先级信息,将上述初始网络地址列表对应加入上述目标消息队列中,创建得到爬虫任务,其中,多个目标消息队列中的每个上述目标消息队列的优先级不同;在检测到指示执行上述爬虫任务的情况下,依据上述目标消息队列的优先级和上述初始网络地址列表爬取网页,获取目标网络地址列表;依据上述目标网络地址列表的优先级,将上述目标网络地址列表对应放入待爬取网络地址队列中;依据上述待爬取网络地址队列的优先级和上述目标网络地址列表爬取网页,直至无法获取得到目标网络地址列表。
根据本申请实施例,还提供了一种处理器实施例。可选地,在本实施例中,上述处理器用于运行程序,其中,上述程序运行时执行上述任意一种网络爬虫任务的调度方法。
本申请实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取待爬取目标数据的初始网络地址列表;依据上述待爬取目标数据的优先级信息,将上述初始网络地址列表对应加入上述目标消息队列中,创建得到爬虫任务,其中,多个目标消息队列中的每个上述目标消息队列的优先级不同;在检测到指示执行上述爬虫任务的情况下,依据上述目标消息队列的优先级和上述初始网络地址列表爬取网页,获取目标网络地址列表;依据上述目标网络地址列表的优先级,将上述目标网络地址列表对应放入待爬取网络地址队列中;依据上述待爬取网络地址队列的优先级和上述目标网络地址列表爬取网页,直至无法获取得到目标网络地址列表。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取待爬取目标数据的初始网络地址列表;依据上述待爬取目标数据的优先级信息,将上述初始网络地址列表对应加入上述目标消息队列中,创建得到爬虫任务,其中,多个目标消息队列中的每个上述目标消息队列的优先级不同;在检测到指示执行上述爬虫任务的情况下,依据上述目标消息队列的优先级和上述初始网络地址列表爬取网页,获取目标网络地址列表;依据上述目标网络地址列表的优先级,将上述目标网络地址列表对应放入待爬取网络地址队列中;依据上述待爬取网络地址队列的优先级和上述目标网络地址列表爬取网页,直至无法获取得到目标网络地址列表。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种网络爬虫任务的调度方法,其特征在于,包括:
获取待爬取目标数据的初始网络地址列表;
依据所述待爬取目标数据的优先级信息,将所述初始网络地址列表对应加入目标消息队列中,创建得到爬虫任务,其中,多个目标消息队列中的每个所述目标消息队列的优先级不同;
在检测到指示执行所述爬虫任务的情况下,依据所述目标消息队列的优先级和所述初始网络地址列表爬取网页,获取目标网络地址列表;
依据所述目标网络地址列表的优先级,将所述目标网络地址列表对应放入待爬取网络地址队列中,其中,目标消息队列和待爬取网络地址队列均为支持主题优先级排序的消息队列;
依据所述待爬取网络地址队列的优先级和所述目标网络地址列表爬取网页,直至无法获取得到目标网络地址列表。
2.根据权利要求1所述的方法,其特征在于,在获取待爬取目标数据的初始网络地址列表之前,所述方法还包括:
获取爬取需求信息,其中,所述爬取需求信息包括:爬取目标定义信息和/爬取目标描述信息;
确定与所述爬取需求信息对应的待爬取目标数据。
3.根据权利要求1所述的方法,其特征在于,在获取待爬取目标数据的初始网络地址列表之前,所述方法还包括:
预先定义多个基于分布式流处理库的所述目标消息队列。
4.根据权利要求1所述的方法,其特征在于,在获取目标网络地址列表之后,所述方法还包括:
确定所述目标网络地址列表中所述待爬取目标数据对应的相关网络地址;
删除所述目标网络地址列表中除所述相关网络地址之外的其他网络地址。
5.根据权利要求1所述的方法,其特征在于,在根据所述目标消息队列的优先级和所述初始网络地址列表爬取网页之后,所述方法还包括:
将已爬取的至少一个所述初始网络地址列表放入已爬取列表,其中,所述已爬取列表用于爬取去重处理和判断爬取进程。
6.一种网络爬虫任务的调度装置,其特征在于,包括:
第一获取模块,用于获取待爬取目标数据的初始网络地址列表;
任务创建模块,用于依据所述待爬取目标数据的优先级信息,将所述初始网络地址列表对应加入目标消息队列中,创建得到爬虫任务,其中,多个目标消息队列中的每个所述目标消息队列的优先级不同;
第一爬取模块,用于在检测到指示执行所述爬虫任务的情况下,依据所述目标消息队列的优先级和所述初始网络地址列表爬取网页,获取目标网络地址列表;
调度模块,用于依据所述目标网络地址列表的优先级,将所述目标网络地址列表对应放入待爬取网络地址队列中,其中,目标消息队列和待爬取网络地址队列均为支持主题优先级排序的消息队列;
第二爬取模块,用于依据所述待爬取网络地址队列的优先级和所述目标网络地址列表爬取网页,直至无法获取得到目标网络地址列表。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取爬取需求信息,其中,所述爬取需求信息包括:爬取目标定义信息和/爬取目标描述信息;
确定模块,用于确定与所述爬取需求信息对应的待爬取目标数据。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
队列定义模块,用于预先定义多个基于分布式流处理库的所述目标消息队列。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任意一项所述的网络爬虫任务的调度方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至5中任意一项所述的网络爬虫任务的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010261408.XA CN111444412B (zh) | 2020-04-03 | 2020-04-03 | 网络爬虫任务的调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010261408.XA CN111444412B (zh) | 2020-04-03 | 2020-04-03 | 网络爬虫任务的调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111444412A CN111444412A (zh) | 2020-07-24 |
CN111444412B true CN111444412B (zh) | 2023-06-16 |
Family
ID=71650010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010261408.XA Active CN111444412B (zh) | 2020-04-03 | 2020-04-03 | 网络爬虫任务的调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111444412B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114817677A (zh) * | 2021-01-21 | 2022-07-29 | 中国移动通信有限公司研究院 | 一种爬虫调度方法、装置及系统 |
CN113965371B (zh) * | 2021-10-19 | 2023-08-29 | 北京天融信网络安全技术有限公司 | 网站监测过程中的任务处理方法、装置、终端及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1564661A2 (en) * | 2004-02-12 | 2005-08-17 | Microsoft Corporation | Decision-theoretic web-crawling and predicting web-page change |
CN101101601A (zh) * | 2007-07-10 | 2008-01-09 | 北京大学 | 网络搜索中的基于链接层次分类的主题爬取方法 |
US7987172B1 (en) * | 2004-08-30 | 2011-07-26 | Google Inc. | Minimizing visibility of stale content in web searching including revising web crawl intervals of documents |
US8180761B1 (en) * | 2007-12-27 | 2012-05-15 | Symantec Corporation | Referrer context aware target queue prioritization |
CN104090976A (zh) * | 2014-07-21 | 2014-10-08 | 北京奇虎科技有限公司 | 搜索引擎爬虫抓取网页的方法及装置 |
CN106384292A (zh) * | 2016-09-14 | 2017-02-08 | 哈尔滨工业大学(威海) | 社交网络用户关系采集系统及方法 |
CN108205541A (zh) * | 2016-12-16 | 2018-06-26 | 北大方正集团有限公司 | 分布式网络爬虫任务的调度方法及装置 |
CN109614534A (zh) * | 2018-11-29 | 2019-04-12 | 武汉大学 | 一种基于深度学习和增强学习的聚焦爬虫链接价值预测方法 |
CN109670101A (zh) * | 2018-12-28 | 2019-04-23 | 北京奇安信科技有限公司 | 爬虫调度方法、装置、电子设备及存储介质 |
CN109933706A (zh) * | 2019-03-29 | 2019-06-25 | 北京达佳互联信息技术有限公司 | 一种数据获取方法、装置、电子设备及存储介质 |
CN110727643A (zh) * | 2019-09-16 | 2020-01-24 | 北京明朝万达科技股份有限公司 | 一种基于机器学习的文件分类管理方法及系统 |
CN110874429A (zh) * | 2019-11-14 | 2020-03-10 | 北京京航计算通讯研究所 | 面向海量数据采集的分布式网络爬虫性能优化方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140129371A1 (en) * | 2012-11-05 | 2014-05-08 | Nathan R. Wilson | Systems and methods for providing enhanced neural network genesis and recommendations |
US10129239B2 (en) * | 2015-05-08 | 2018-11-13 | Citrix Systems, Inc. | Systems and methods for performing targeted scanning of a target range of IP addresses to verify security certificates |
US20170185678A1 (en) * | 2015-12-28 | 2017-06-29 | Le Holdings (Beijing) Co., Ltd. | Crawler system and method |
-
2020
- 2020-04-03 CN CN202010261408.XA patent/CN111444412B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1564661A2 (en) * | 2004-02-12 | 2005-08-17 | Microsoft Corporation | Decision-theoretic web-crawling and predicting web-page change |
US7987172B1 (en) * | 2004-08-30 | 2011-07-26 | Google Inc. | Minimizing visibility of stale content in web searching including revising web crawl intervals of documents |
CN101101601A (zh) * | 2007-07-10 | 2008-01-09 | 北京大学 | 网络搜索中的基于链接层次分类的主题爬取方法 |
US8180761B1 (en) * | 2007-12-27 | 2012-05-15 | Symantec Corporation | Referrer context aware target queue prioritization |
CN104090976A (zh) * | 2014-07-21 | 2014-10-08 | 北京奇虎科技有限公司 | 搜索引擎爬虫抓取网页的方法及装置 |
CN106384292A (zh) * | 2016-09-14 | 2017-02-08 | 哈尔滨工业大学(威海) | 社交网络用户关系采集系统及方法 |
CN108205541A (zh) * | 2016-12-16 | 2018-06-26 | 北大方正集团有限公司 | 分布式网络爬虫任务的调度方法及装置 |
CN109614534A (zh) * | 2018-11-29 | 2019-04-12 | 武汉大学 | 一种基于深度学习和增强学习的聚焦爬虫链接价值预测方法 |
CN109670101A (zh) * | 2018-12-28 | 2019-04-23 | 北京奇安信科技有限公司 | 爬虫调度方法、装置、电子设备及存储介质 |
CN109933706A (zh) * | 2019-03-29 | 2019-06-25 | 北京达佳互联信息技术有限公司 | 一种数据获取方法、装置、电子设备及存储介质 |
CN110727643A (zh) * | 2019-09-16 | 2020-01-24 | 北京明朝万达科技股份有限公司 | 一种基于机器学习的文件分类管理方法及系统 |
CN110874429A (zh) * | 2019-11-14 | 2020-03-10 | 北京京航计算通讯研究所 | 面向海量数据采集的分布式网络爬虫性能优化方法 |
Non-Patent Citations (1)
Title |
---|
白鹤 ; 汤迪斌 ; 王劲林 ; .分布式多主题网络爬虫系统的研究与实现.计算机工程.2009,(第19期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111444412A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107895009B (zh) | 一种基于分布式的互联网数据采集方法及系统 | |
Mahto et al. | A dive into Web Scraper world | |
CN109033115B (zh) | 一种动态网页爬虫系统 | |
US9524343B2 (en) | Interactive web crawler | |
US8799262B2 (en) | Configurable web crawler | |
CN105243159A (zh) | 一种基于可视化脚本编辑器的分布式网络爬虫系统 | |
US10216848B2 (en) | Method and system for recommending cloud websites based on terminal access statistics | |
US20110087644A1 (en) | Enterprise node rank engine | |
CN111444412B (zh) | 网络爬虫任务的调度方法及装置 | |
CN104090976A (zh) | 搜索引擎爬虫抓取网页的方法及装置 | |
CN107391775A (zh) | 一种通用的网络爬虫模型实现方法及系统 | |
JP5373818B2 (ja) | 集中型ソーシャル・ネットワーク応答追跡 | |
CN111488508A (zh) | 一种支持多协议分布式高并发的互联网信息采集系统及方法 | |
CN110535901A (zh) | 服务降级方法、装置、计算机设备及存储介质 | |
CN107807937A (zh) | 一种网站seo处理方法、装置及系统 | |
CN105589943A (zh) | 搜索结果页面的图片适应性处理的方法、装置和服务器 | |
CN108519987A (zh) | 一种数据持久化方法和装置 | |
CN109213912A (zh) | 一种抓取网络数据的方法及网络数据抓取调度装置 | |
Jilek et al. | Managed forgetting to support information management and knowledge work | |
Hurst et al. | Social streams blog crawler | |
CN106384292A (zh) | 社交网络用户关系采集系统及方法 | |
CN107329832B (zh) | 一种数据接收方法及装置 | |
CN110019380A (zh) | 一种数据查询方法、装置、服务器及存储介质 | |
CN114745146A (zh) | 跳转拦截方法、装置、可读存储介质及设备 | |
CN110442769A (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 |