CN116089681A - 数据采集方法、装置、存储介质及计算机设备 - Google Patents
数据采集方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN116089681A CN116089681A CN202211624151.5A CN202211624151A CN116089681A CN 116089681 A CN116089681 A CN 116089681A CN 202211624151 A CN202211624151 A CN 202211624151A CN 116089681 A CN116089681 A CN 116089681A
- Authority
- CN
- China
- Prior art keywords
- data acquisition
- target
- task
- webpage
- task execution
- 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
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management 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
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- 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)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及电子信息技术领域,并公开了一种数据采集方法、装置、存储介质及计算机设备。其中方法包括构建任务列表,在任务列表中确定目标站点,并获取目标站点中每个网页的请求参数,然后根据请求参数在目标站点中提取目标网页,并计算目标网页的优先级,基于优先级生成任务执行队列,再将任务执行队列发送到至少两个主机设备中,以基于任务执行队列执行数据采集任务,得到目标网页的采集数据,最终对采集数据进行解析和清洗优化,得到数据采集结果,并将数据采集结果存储至数据库中。上述方法通过至少两个主机设备高并发的对多目标网页进行数据采集,并对多目标网页的数据采集顺序按照优先级进行针对性排序,数据采集方式灵活且高效。
Description
技术领域
本发明涉及电子信息技术领域,尤其是涉及一种数据采集方法、装置、存储介质及计算机设备。
背景技术
随着信息技术的迅速发展,万维网成为重要的信息数据载体。为了在万维网的海量信息中稳定高效且准确地获取数据,各种数据采集技术应运而生,应用数据采集技术能够快速从万维网中抓取数据并结构化存入数据库中。
目前,随着业务需求的种类和数量不断增加,所需采集的数据量也在不断增长,所需采集数据频率也越来越快,与此同时,万维网中的数据呈几何量级般的增长,且各网站设置的数据获取机制不同,导致任务执行时间变长,数据采集的难度增加,数据采集的效率变低,进而使得常规的数据采集技术无法灵活、快速、高效地采集多网站的网页数据。
发明内容
有鉴于此,本申请提供的数据采集方法、装置、存储介质及计算机设备,主要目的在于解决现有技术中常规的数据采集技术无法灵活、快速、高效地采集多网站的网页数据的技术问题。
根据本发明的第一个方面,提供了一种数据采集方法,该方法包括:
构建任务列表,在所述任务列表中确定目标站点,并获取所述目标站点中每个网页的请求参数,其中,所述目标站点包括至少一个网页;
根据所述请求参数,在所述目标站点中提取目标网页,并计算所述目标网页的优先级,基于所述目标网页的优先级生成任务执行队列;
将所述任务执行队列发送到至少两个主机设备中,以使所述至少两个主机设备基于所述任务执行队列逐一执行数据采集任务,得到所述目标网页的采集数据;
对所述采集数据进行解析和清洗优化,得到数据采集结果,并将所述数据采集结果存储至数据库中。
根据本发明的第二个方面,提供了一种数据采集装置,该装置包括:
任务获取模块,用于构建任务列表,在所述任务列表中确定目标站点,并获取所述目标站点中每个网页的请求参数,其中,所述目标站点包括至少一个网页;
任务生成模块,用于根据所述请求参数,在所述目标站点中提取目标网页,并计算所述目标网页的优先级,基于所述目标网页的优先级生成任务执行队列;
任务执行模块,用于将所述任务执行队列发送到至少两个主机设备中,以使所述至少两个主机设备基于所述任务执行队列逐一执行数据采集任务,得到所述目标网页的采集数据;
数据存储模块,用于对所述采集数据进行解析和清洗优化,得到数据采集结果,并将所述数据采集结果存储至数据库中。
根据本发明的第三个方面,提供了一种存储介质,其上存储有计算机程序,程序被处理器执行时实现上述数据采集方法。
根据本发明的第四个方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述数据采集方法。
本发明提供的一种数据采集方法、装置、存储介质及计算机设备,本申请首先构建任务列表,在任务列表中确定目标站点,并获取目标站点中每个网页的请求参数,其中,目标站点包括至少一个网页,然后根据请求参数在目标站点中提取目标网页,并计算目标网页的优先级,基于目标网页的优先级生成任务执行队列,再将任务执行队列发送到至少两个主机设备中,以使至少两个主机设备基于任务执行队列逐一执行数据采集任务,得到目标网页的采集数据,最终对采集数据进行解析和清洗优化,得到数据采集结果,并将数据采集结果存储至数据库中。上述方法对目标站点中的网页进行筛选,确定所要采集的目标网页,避免直接访问无效网页浪费数据采集时间。通过获取目标网页自身的请求参数来计算各个目标网页的优先级,并生成基于目标网页优先级生成的任务执行队列,以对各个目标网页的数据采集顺序进行优化。将任务执行队列发送到至少两个主机设备以执行数据采集任务,能够异步采集目标网页的数据,提升数据采集的效率。最终将得到的数据采集结果存储至数据库中,便于随时查看与获取。上述方法通过至少两个主机设备高并发的对多目标网页进行数据采集,并对多目标网页进行针对性排序,数据采集方式灵活且高效,避免因各个目标站点的数据获取机制不同导致数据采集任务执行低效的情况出现。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明提供的一种实施例中数据采集方法的流程示意图;
图2示出了本发明提供的一种实施例中数据采集方法的流程示意图;
图3示出了本发明提供的一种实施例中数据采集方法的原理流程图;
图4示出了本发明提供的一种实施例中数据采集装置的结构示意图;
图5示出了本发明提供的一种实施例中计算机设备的装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
本申请实施例提供了一种数据采集方法,如图1所示,该方法包括以下步骤:
101、构建任务列表,在任务列表中确定目标站点,并获取目标站点中每个网页的请求参数,其中,目标站点包括至少一个网页。
首先对本方法适用的应用场景进行介绍,随着信息技术的迅速发展,为了在万维网的海量信息中稳定高效且准确地获取数据,通常应用数据采集技术以快速从万维网中抓取数据并结构化存入数据库中。但是随着业务需求的种类和数量不断增加,所需采集的数据量也在不断增长,所需采集数据频率也越来越快,同时,万维网中的数据呈几何量级般的增长,且各网站通过设置的数据获取机制不同,导致任务执行时间变长,数据采集的难度增加,数据采集的效率变低,进而使得常规的数据采集技术无法灵活、快速地采集多网站的数据。
具体地,站点是指互联网中一个网站的准确访问地址,而网站是使用HTML标准通用标记语言等工具制作的用于展示特定内容相关网页的集合,通过获取并访问网站的站点,便能访问网站中的所有网页,而网站中所包含的网页可以是一个,也可以是很多个。网站中的多个网页通常是通过不同的网址进行链接的,即能够从一个网页的链接点击可以打开另一个链接的网页。
进而本申请提出一种数据采集方法,首先需要构建一个任务列表,在任务列表中确定目标站点,通过访问目标站点便能直接访问到所需采集数据的网页,而目标站点中通常存在一个或多个网页,而所需采集数据的网页在目标站点之中,因此在确定目标站点之后,需要获取目标站点中每个网页的请求参数,便于之后利用请求参数对目标站点中的全部网页进行筛选来找到所需采集数据的网页。
102、根据请求参数,在目标站点中提取目标网页,并计算目标网页的优先级,基于目标网页的优先级生成任务执行队列。
具体地,优先级是计算机分时操作系统在处理多个作业程序、进程或任务时,决定各个作业程序、进程或任务接受系统资源的优先等级的参数。优先级通常是一种约定,一般情况下系统优先执行优先级较高的任务,再依次优先级顺序依次执行优先级低的任务。各个作业程序或任务都需要按一定的标准或要求对其指定优先级,常见的例如要按程序的性质或其长度,或是按作业的来源等各类指定的条件确定其优先级,然后计算机根据各作业程序优先级的高低,来决定处理各程序的先后次序,甚至在计算机执行或处理多个作业程序、进程或任务中,还能允许优先级较高的进程中断优先级较低的进程,以满足使用者的需求。
在本申请实施例中,由于目标站点中通常包含多个网页,只有特定的网页是采集数据的目标网页,因此需要预先对目标站点中的所有网页进行筛选,提取所需采集数据的目标网页,而其他目标站点中存在的一些无效网页或者无法访问网页,便无需进行访问避免浪费数据采集的时间,影响采集效率,具体通过根据网页的请求参数来进行筛选。再通过计算所有目标网页的优先级之后,根据采集数据的需求,按照目标网页的优先级生成任务执行队列,在任务执行队列中,依次优先级顺序排列着所需采集的目标网页,按照任务执行队列执行数据采集任务,便可根据优先级顺序依次采集各个目标网页的数据,实现对各个目标网页的数据获取顺序进行差异化排列,有效提升数据获取效率。
103、将任务执行队列发送到至少两个主机设备中,以使至少两个主机设备基于任务执行队列逐一执行数据采集任务,得到目标网页的采集数据。
具体地,执行数据采集任务即是运用数据采集技术来采集目标网页的数据,其中,数据采集是一种按照一定的预设规则,自动地抓取万维网数据信息的程序或者脚本。将任务执行队列发送到至少两个主机设备中,使得至少两个主机设备同时运行数据采集以协同执行数据采集任务,实现分布式数据采集的整体架构。
在本申请实施例中,用于生成任务执行队列的主机设备为分布式数据采集的主机,主要用于根据需求生成以及维护任务执行队列,而分布式数据采集的主机将任务执行队列发送到至少两个主机设备中,收到任务执行队列的主机设备则作为分布式数据采集的从机,主要负责数据采集,数据处理以及数据存储。采用多个主机系统执行数据采集任务,即构建分布式数据采集的架构,能够灵活应对多网站中多目标站点的多目标网页的不同数据获取策略,优化调度方案,并且有效地提升数据采集的效率。
104、对采集数据进行解析和清洗优化,得到数据采集结果,并将数据采集结果存储至数据库中。
在本申请实施例中,由收到任务执行队列的至少两个主机设备执行数据采集任务,即分布式数据采集的从机用于数据采集,数据处理以及数据存储,至少两个主机设备在执行完成数据采集任务得到采集数据,并对采集数据进行进一步处理,具体包括对采集数据进行解析和清晰优化,将得到的数据采集结果直接存储至数据库中,便于随时查看及获取。
本发明提供的一种数据采集方法、装置、存储介质及计算机设备,本申请首先构建任务列表,在任务列表中确定目标站点,并获取目标站点中每个网页的请求参数,其中,目标站点包括至少一个网页,然后根据请求参数在目标站点中提取目标网页,并计算目标网页的优先级,基于目标网页的优先级生成任务执行队列,再将任务执行队列发送到至少两个主机设备中,以使至少两个主机设备基于任务执行队列逐一执行数据采集任务,得到目标网页的采集数据,最终对采集数据进行解析和清洗优化,得到数据采集结果,并将数据采集结果存储至数据库中。上述方法对目标站点中的网页进行筛选,确定所要采集的目标网页,避免直接访问无效网页浪费数据采集时间。通过获取目标网页自身的请求参数来计算各个目标网页的优先级,并生成基于目标网页优先级生成的任务执行队列,以对各个目标网页的数据采集顺序进行优化。将任务执行队列发送到至少两个主机设备以执行数据采集任务,能够异步采集目标网页的数据,提升数据采集的效率。最终将得到的数据采集结果存储至数据库中,便于随时查看与获取。上述方法通过至少两个主机设备高并发的对多目标网页进行数据采集,并对多目标网页进行针对性排序,数据采集方式灵活且高效,避免因各个目标站点的数据获取机制不同导致数据采集任务执行低效的情况出现。
本申请实施例还提供了一种数据采集方法,如图2所示,该方法包括以下步骤:
201、构建任务列表,在任务列表中确定目标站点,并获取目标站点中网页的请求参数。
具体地,确定目标站点以及获取目标站点中每个网页的请求参数的步骤参见步骤101,再此不进行赘述。
202、根据请求参数,在目标站点中提取目标网页,并计算目标网页的优先级,基于目标网页的优先级生成任务执行队列。
具体地,请求参数包括状态码、响应时间和结果数量,获取目标站点中每个网页的状态码,并将每个网页的状态码与预设状态码进行比对,当任一网页的状态码与预设状态码相同时,将网页标记为目标网页,然后获取目标网页的响应时间和结果数量,并基于目标网页的响应时间和结果数量计算目标网页的优先级,最后基于目标网页的优先级,按照优先级的数值由高到低的排序规则对目标网页进行排序,得到任务执行队列。
在本申请实施例中,获取目标站点中网页的状态码、响应时间和结果数量,主要通过获取各个网页的访问日志,再对访问日志进行统计得到请求参数。其中,预设状态码为200,即网页的状态码为200代表网页响应正常,能够正常访问,通过对目标站点中所有网页进行筛选,挑选出能够正常响应的网页,将能够正常访问的网页标记为目标网页,并构建初始任务队列,将目标网页添加至初始任务队列,准备对目标网页的数据进行采集,而状态码非200的网页则代表着网页响应异常,则放弃对响应异常网页的数据采集,继续对目标站点中其他网页的状态码依次进行比对,直至对目标站点中全部网页的状态码完成比对,初始任务队列中包含着所有需要进行数据采集的目标网页,而响应异常的网页不会出现在初始任务队列中。通过对目标站点中的网页进行筛选,得到能够正常响应的目标网页,避免直接对目标站点中存在的响应异常的网页尝试访问,导致浪费数据采集时间,设定状态码条件比对能够有效提升数据采集的效率。在对所有的目标网页完成优先级的计算后,依据优先级由高到低进行排序,基于初始任务队列得到一个任务执行队列,依照任务执行队列中目标网页的排序执行数据采集任务以异步爬取所有目标网页的数据,有效地提升数据采集的效率。
进一步的,通过预设的优先级计算公式,基于目标网页的响应时间和结果数量计算目标网页的优先级,优先级计算公式为:
其中,P为目标网页的优先级,t为目标网页的响应时间,num为目标网页的结果数量。
在本申请实施例中,在对目标站点的网页筛选后生成包含目标网页的初始队列,需要继续计算目标网页的优先级顺序来确定任务执行队列。具体地,目标网页的优先级的决定因素主要是目标网页的响应时间t和返回结果数量num决定,其中,响应时间短以及结果数量少的目标网页会被优先执行采集数据的任务。考虑到大部分网页彼此之间的响应时间差的量级在毫秒级,因此需要在优先级计算公式中的分母中增加常量,以增加目标网页间优先级的计算差异,避免P的值相近影响排序效果,获得更准确的任务执行队列。
203、将任务执行队列发送到至少两个主机设备中,并将任务执行队列存储至至少两个主机设备的系统路径中。
具体地,当数据采集任务断开连接时,停止数据采集任务,并将数据采集任务的中断节点保存至系统路径中,当数据采集任务重新连接时,从系统路径中提取中断节点,并从中断节点继续执行数据采集任务。
在本申请实施例中,至少两个主机设备作为分布式数据采集的从机,用于执行数据采集任务,即数据采集任务,当任务执行队列被分发到至少两个主机设备时,预先将任务执行队列存储至至少两个主机设备的系统路径中,若存在主机设备出现意外状况发生断电等情况,进而导致数据采集运行中断停止数据采集任务,则可将数据采集任务的中断节点直接保存至系统路径中,待主机设备恢复正常使用,便可直接从系统路径中提取数据采集任务的中断节点,继续执行数据采集任务,避免因意外情况使得数据采集任务中断,导致需要重新开始数据采集任务,能够从中断点恢复继续进行,有效提升执行数据采集任务的稳定性。
204、至少两个主机设备基于任务执行队列逐一执行数据采集任务并对访问请求指纹进行去重。
具体地,首先在至少两个主机设备中构建访问请求去重集合,其中,访问请求去重集合包括现有访问请求指纹,再基于任务执行队列,获取任务执行队列中目标网页对应的新增访问请求指纹,将新增访问请求指纹与现有访问请求指纹进行比对,当新增访问请求指纹与任一现有访问请求指纹一致时,移除新增访问请求指纹,并在任务执行队列中确定新增访问请求指纹对应的目标网页,停止对目标网页执行数据采集任务,而当新增访问请求指纹与任一现有访问请求指纹均不一致时,将新增访问请求指纹作为现有访问请求指纹添加至访问请求去重集合中。
在本申请实施例中,在执行数据采集任务时会产生http请求,即访问请求指纹,在任务执行队列中,可能在目标网页中存在多个相同的访问请求指纹,因此设置一个访问请求去重集合以记录目标网页对应的新增访问请求指纹,即数据采集中产生的http请求,判断新增访问请求指纹是否与访问请求去重集合现有的访问请求指纹重复,若指纹重复则需要对移除新增访问请求指纹,不再对其对应的目标网页进行访问采集数据,若指纹不重复则将新增访问请求指纹添加至访问请求去重集合中作为现有访问请求指纹,直至对任务执行队列中所有目标网页所对应的访问请求指纹完成比对,并确保访问请求去重集合中的访问请求指纹均为唯一,有效避免对任务执行队列中存在的重复网页进行采集,进一步地提升了数据采集的效率。
具体地,在对目标网页执行数据采集任务的时候,会在两个数据采集任务之间设置一个等待时间RN,等待时间RN是一个随机生成的等待时间,等待时间RN作为安全缓冲时间,大于响应时间t的,避免以极高速率采集数据站点命中目标站点限制策略,导致目标站点负载过大,影响正常的业务秩序和数据采集效率。通过设置等待时间RN能够有效避免采用同一频率爬起命中目标站点的限制策略,影响数据采集任务的进程。
205、根据数据采集任务的执行状态执行不同数据采集策略,得到目标网页的采集数据。
具体地,当至少两个主机设备检测到当前数据采集任务暂停时,获取当前数据采集任务的任务执行状态,若任务执行状态为阻塞状态,则暂停对当前目标网页执行数据采集任务,并基于任务执行队列,依次执行除当前目标网页外的其余目标网页的数据采集任务,直至当前数据采集任务得到响应,继续执行当前目标网页的数据采集任务,若任务执行状态为非阻塞状态,则等待当前数据采集任务开始,继续执行当前数据采集任务。
在本申请实施例中,由于在执行数据采集任务时会在同一目标站点中执行多次数据采集任务,因此在目标站点完成对优先级最高的目标网页完成数据采集任务之后,继续进行数据采集任务,而在进行数据采集任务的过程中执行python_asyncio包中的get方法时,当前目标网页的数据采集任务会被挂起,进而需要对当前数据采集任务的状态进行判断,若当前数据采集任务的任务执行状态为阻塞状态,则无法在短时间内继续执行,因此依据任务执行列表里优先级顺序继续执行其他目标网页的数据采集任务;若当前数据采集任务的任务执行状态为非阻塞状态,当前数据采集任务在被挂起后,会立刻被唤醒,等到当前数据采集任务被唤醒后,继续执行当前数据采集任务,执行顺序不受影响。上述方法能够实时对数据采集任务的状态进行追踪判断,根据数据采集任务不同的状态来决定各个目标网页的执行顺序,具有较强的灵活性。
206、将采集数据进行解析和清洗优化,得到数据采集结果,并将数据采集结果存储至数据库中。
具体地,对采集数据进行解析,得到目标网页的页面标签,基于页面标签对采集数据进行清洗优化,得到数据采集结果,其中,数据采集结果包括目标网页的字段类型,最终根据字段类型,将数据采集结果结构化存储至数据库中。
在本申请实施例中,通过对采集到的目标网页的采集数据进行解析得到目标网页的页面标签,进一步基于页面标签对数据进行清洗优化,具体包括数据清洗、过滤以及优化,得到采集结果,其中,对于数据进行清洗、过滤以及优化为常见的数据处理手段,具体包括对信息进行清洗,统一格式,对文本内容过滤剔除噪声数据,对其中的正文内容进行深度过滤以及深度优化,最后按照采集结果中目标网页的字段类型将采集结果结构化地存储至数据库中,实现目标网页数据的存储,便于查看并提取数据。
本发明提供的一种数据采集方法、装置、存储介质及计算机设备,具体原理如图3所示,本申请首先构建任务列表,在任务列表中确定目标站点,并获取目标站点中网页的请求参数,再根据请求参数,在目标站点中提取目标网页,并计算目标网页的优先级,基于目标网页的优先级生成任务执行队列,将任务执行队列发送到至少两个主机设备中,并将任务执行队列存储至至少两个主机设备的系统路径中,至少两个主机设备基于任务执行队列逐一执行数据采集任务并对访问请求指纹进行去重,再根据数据采集任务的执行状态执行不同数据采集策略,得到目标网页的采集数据,最终将采集数据进行解析和清洗优化,得到数据采集结果,并将数据采集结果存储至数据库中。上述方法通过对获取目标站点中每个网页的请求参数并基于请求参数对网页进行筛选得到目标网页,并计算目标网页的优先级,依照得到的任务执行队列在至少两个主机设备中执行数据采集任务,在执行数据采集任务的过程中对访问请求指纹进行去重,并根据数据采集任务的执行状态执行不同数据采集策略,最终将数据采集结果存储至数据库中。上述方法有效提升数据采集的效率,提升数据采集的灵活性。
进一步地,作为图1方法的具体实现,本申请实施例提供了一种数据采集装置,如图4所示,装置包括:任务获取模块401、任务生成模块402、任务执行模块403、数据存储模块404。
任务获取模块401,可用于构建任务列表,在任务列表中确定目标站点,并获取目标站点中每个网页的请求参数,其中,目标站点包括至少一个网页;
任务生成模块402,可用于根据请求参数,在目标站点中提取目标网页,并计算目标网页的优先级,基于目标网页的优先级生成任务执行队列;
任务执行模块403,可用于将任务执行队列发送到至少两个主机设备中,以使至少两个主机设备基于任务执行队列逐一执行数据采集任务,得到目标网页的采集数据;
数据存储模块404,可用于对采集数据进行解析和清洗优化,得到数据采集结果,并将数据采集结果存储至数据库中。
在具体的应用场景中,任务生成模块402可用于获取目标站点中每个网页的状态码,并将每个网页的状态码与预设状态码进行比对,当任一网页的状态码与预设状态码相同时,将网页标记为目标网页,获取目标网页的响应时间和结果数量,并基于目标网页的响应时间和结果数量计算目标网页的优先级,基于目标网页的优先级,按照优先级的数值由高到低的排序规则对目标网页进行排序,得到任务执行队列。
在具体的应用场景中,任务生成模块402还可用于通过预设的优先级计算公式,基于目标网页的响应时间和结果数量计算目标网页的优先级,优先级计算公式为:
其中,P为目标网页的优先级,t为目标网页的响应时间,num为目标网页的结果数量。
在具体的应用场景中,任务执行模块403,具体可用于在至少两个主机设备中构建访问请求去重集合,其中,访问请求去重集合包括现有访问请求指纹,然后基于任务执行队列,获取任务执行队列中目标网页对应的新增访问请求指纹,将新增访问请求指纹与现有访问请求指纹进行比对,当新增访问请求指纹与任一现有访问请求指纹一致时,移除新增访问请求指纹,并在任务执行队列中确定新增访问请求指纹对应的目标网页,停止对目标网页执行数据采集任务,而当新增访问请求指纹与任一现有访问请求指纹均不一致时,将新增访问请求指纹作为现有访问请求指纹添加至访问请求去重集合中。
在具体的应用场景中,任务执行模块403还可用于当至少两个主机设备检测到当前数据采集任务暂停时,获取当前数据采集任务的任务执行状态,若任务执行状态为阻塞状态,则暂停对当前目标网页执行数据采集任务,并基于任务执行队列,依次执行除当前目标网页外的其余目标网页的数据采集任务,直至当前数据采集任务得到响应,继续执行当前目标网页的数据采集任务,若任务执行状态为非阻塞状态,则等待当前数据采集任务开始,继续执行当前数据采集任务。
在具体的应用场景中,任务执行模块403还可用于将任务执行队列发送到至少两个主机设备中,并将任务执行队列存储至至少两个主机设备的系统路径中,当数据采集任务断开连接时,停止数据采集任务,并将数据采集任务的中断节点保存至系统路径中,而当数据采集任务重新连接时,从系统路径中提取中断节点,并从中断节点继续执行数据采集任务。
在具体的应用场景中,数据存储模块404,具体可用于对采集数据进行解析,得到目标网页的页面标签,然后基于页面标签对采集数据进行清洗优化,得到数据采集结果,其中,数据采集结果包括目标网页的字段类型,最终根据字段类型,将数据采集结果结构化存储至数据库中。
需要说明的是,本实施例提供的一种数据采集装置所涉及各功能单元的其它相应描述,可以参考图1和图2中的对应描述,在此不再赘述。
基于上述如图1所示方法,相应的,本实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述数据采集方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该待识别软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景数据采集方法。
基于上述如图1和图2所示的方法,以及图4所示的数据采集装置实施例,为了实现上述目的,如图5所示,本实施例还提供了数据采集的实体设备,该设备包括通信总线、处理器、存储器和通信接口,还可以包括输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中数据采集方法。
可选的,该实体设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种数据采集实体设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述实体设备硬件和待识别软件资源的程序,支持信息处理程序以及其它待识别软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本申请的技术方案,首先构建任务列表,在任务列表中确定目标站点,并获取目标站点中每个网页的请求参数,其中,目标站点包括至少一个网页,然后根据请求参数在目标站点中提取目标网页,并计算目标网页的优先级,基于目标网页的优先级生成任务执行队列,再将任务执行队列发送到至少两个主机设备中,以使至少两个主机设备基于任务执行队列逐一执行数据采集任务,得到目标网页的采集数据,最终对采集数据进行解析和清洗优化,得到数据采集结果,并将数据采集结果存储至数据库中。上述方法对目标站点中的网页进行筛选,确定所要采集的目标网页,避免直接访问无效网页浪费数据采集时间。通过获取目标网页自身的请求参数来计算各个目标网页的优先级,并生成基于目标网页优先级生成的任务执行队列,以对各个目标网页的数据采集顺序进行优化。将任务执行队列发送到至少两个主机设备以执行数据采集任务,能够异步采集目标网页的数据,提升数据采集的效率。最终将得到的数据采集结果存储至数据库中,便于随时查看与获取。上述方法通过至少两个主机设备高并发的对多目标网页进行数据采集,并对多目标网页进行针对性排序,数据采集方式灵活且高效,避免因各个目标站点的数据获取机制不同导致数据采集任务执行低效的情况出现。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种数据采集方法,其特征在于,所述方法包括:
构建任务列表,在所述任务列表中确定目标站点,并获取所述目标站点中每个网页的请求参数,其中,所述目标站点包括至少一个网页;
根据所述请求参数,在所述目标站点中提取目标网页,并计算所述目标网页的优先级,基于所述目标网页的优先级生成任务执行队列;
将所述任务执行队列发送到至少两个主机设备中,以使所述至少两个主机设备基于所述任务执行队列逐一执行数据采集任务,得到所述目标网页的采集数据;
对所述采集数据进行解析和清洗优化,得到数据采集结果,并将所述数据采集结果存储至数据库中。
2.根据权利要求1所述的方法,其特征在于,所述请求参数包括状态码、响应时间和结果数量;所述根据所述请求参数,在所述目标站点中提取目标网页,并计算所述目标网页的优先级,基于所述目标网页的优先级生成任务执行队列,包括:
获取所述目标站点中每个网页的状态码,并将每个所述网页的状态码与预设状态码进行比对;
当任一所述网页的状态码与所述预设状态码相同时,将所述网页标记为目标网页;
获取所述目标网页的响应时间和结果数量,并基于所述目标网页的响应时间和结果数量计算所述目标网页的优先级;
基于所述目标网页的优先级,按照所述优先级的数值由高到低的排序规则对所述目标网页进行排序,得到任务执行队列。
4.根据权利要求1所述的方法,其特征在于,所述将所述任务执行队列发送到至少两个主机设备中,以使所述至少两个主机设备基于所述任务执行队列逐一执行数据采集任务,包括:
在所述至少两个主机设备中构建访问请求去重集合,其中,所述访问请求去重集合包括现有访问请求指纹;
基于所述任务执行队列,获取所述任务执行队列中所述目标网页对应的新增访问请求指纹,将所述新增访问请求指纹与所述现有访问请求指纹进行比对;
当所述新增访问请求指纹与任一所述现有访问请求指纹一致时,移除所述新增访问请求指纹,并在所述任务执行队列中确定所述新增访问请求指纹对应的目标网页,停止对所述目标网页执行数据采集任务;
当所述新增访问请求指纹与任一所述现有访问请求指纹均不一致时,将所述新增访问请求指纹作为现有访问请求指纹添加至所述访问请求去重集合中。
5.根据权利要求4所述的方法,其特征在于,所述将所述任务执行队列发送到至少两个主机设备中,以使所述至少两个主机设备基于所述任务执行队列逐一执行数据采集任务,还包括:
当所述至少两个主机设备检测到当前数据采集任务暂停时,获取所述当前数据采集任务的任务执行状态;
若所述任务执行状态为阻塞状态,则暂停对当前目标网页执行数据采集任务,并基于所述任务执行队列,依次执行除所述当前目标网页外的其余目标网页的数据采集任务,直至所述当前数据采集任务得到响应,继续执行所述当前目标网页的数据采集任务;
若所述任务执行状态为非阻塞状态,则等待所述当前数据采集任务开始,继续执行所述当前数据采集任务。
6.根据权利要求1所述的方法,其特征在于,将所述任务执行队列发送到至少两个主机设备中,以使所述至少两个主机设备基于所述任务执行队列逐一执行数据采集任务,还包括:
将所述任务执行队列发送到至少两个主机设备中,并将所述任务执行队列存储至所述至少两个主机设备的系统路径中;
当所述数据采集任务断开连接时,停止所述数据采集任务,并将所述数据采集任务的中断节点保存至所述系统路径中;
当所述数据采集任务重新连接时,从所述系统路径中提取所述中断节点,并从所述中断节点继续执行所述数据采集任务。
7.根据权利要求1所述的方法,其特征在于,所述将所述采集数据进行解析和清洗优化,得到数据采集结果,并将所述数据采集结果存储至数据库中,包括:
对所述采集数据进行解析,得到所述目标网页的页面标签;
基于所述页面标签对所述采集数据进行清洗优化,得到数据采集结果,其中,所述数据采集结果包括所述目标网页的字段类型;
根据所述字段类型,将所述数据采集结果结构化存储至所述数据库中。
8.一种数据采集装置,其特征在于,所述装置包括:
任务获取模块,用于构建任务列表,在所述任务列表中确定目标站点,并获取所述目标站点中每个网页的请求参数,其中,所述目标站点包括至少一个网页;
任务生成模块,用于根据所述请求参数,在所述目标站点中提取目标网页,并计算所述目标网页的优先级,基于所述目标网页的优先级生成任务执行队列;
任务执行模块,用于将所述任务执行队列发送到至少两个主机设备中,以使所述至少两个主机设备基于所述任务执行队列逐一执行数据采集任务,得到所述目标网页的采集数据;
数据存储模块,用于对所述采集数据进行解析和清洗优化,得到数据采集结果,并将所述数据采集结果存储至数据库中。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211624151.5A CN116089681A (zh) | 2022-12-15 | 2022-12-15 | 数据采集方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211624151.5A CN116089681A (zh) | 2022-12-15 | 2022-12-15 | 数据采集方法、装置、存储介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116089681A true CN116089681A (zh) | 2023-05-09 |
Family
ID=86209412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211624151.5A Pending CN116089681A (zh) | 2022-12-15 | 2022-12-15 | 数据采集方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116089681A (zh) |
-
2022
- 2022-12-15 CN CN202211624151.5A patent/CN116089681A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107895009B (zh) | 一种基于分布式的互联网数据采集方法及系统 | |
CN105357038B (zh) | 监控虚拟机集群的方法和系统 | |
US20210184947A1 (en) | Automatic capture of detailed analysis information based on remote server analysis | |
US9015315B2 (en) | Identification and monitoring of distributed business transactions | |
US11178033B2 (en) | Network event automatic remediation service | |
US20160055044A1 (en) | Fault analysis method, fault analysis system, and storage medium | |
US20100017486A1 (en) | System analyzing program, system analyzing apparatus, and system analyzing method | |
CN112087520B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
JP2006260056A (ja) | 統合運用管理サーバ、統合的な運用管理のためのメッセージの抽出方法、及び、プログラム | |
CN110650126A (zh) | 一种防网站流量攻击方法、装置以及智能终端、存储介质 | |
CN114528457A (zh) | Web指纹检测方法及相关设备 | |
CN109033188A (zh) | 一种元数据采集方法、装置、服务器和计算机可读介质 | |
CN109213912A (zh) | 一种抓取网络数据的方法及网络数据抓取调度装置 | |
JP2008158889A (ja) | トラブル要因検出プログラム、トラブル要因検出方法およびトラブル要因検出装置 | |
JP6988827B2 (ja) | 異常識別システム、方法及びプログラム | |
CN111221744B (zh) | 数据采集方法、装置及电子设备 | |
US20230385048A1 (en) | Predictive recycling of computer systems in a cloud environment | |
CN108920411A (zh) | 一种分布式存储系统的数据采集方法及装置 | |
CN110011845B (zh) | 日志采集方法及系统 | |
CN111078975A (zh) | 一种多节点增量式数据采集系统及采集方法 | |
CN116089681A (zh) | 数据采集方法、装置、存储介质及计算机设备 | |
CN115509851A (zh) | 页面监控方法、装置及设备 | |
CN114579415A (zh) | 一种埋点数据的配置方法、获取方法、装置、设备及介质 | |
JP6291859B2 (ja) | 判定プログラム,判定装置,判定方法 | |
CN112035425B (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 |