CN104504006A - 对新闻客户端的数据采集及解析的方法及系统 - Google Patents
对新闻客户端的数据采集及解析的方法及系统 Download PDFInfo
- Publication number
- CN104504006A CN104504006A CN201410754886.9A CN201410754886A CN104504006A CN 104504006 A CN104504006 A CN 104504006A CN 201410754886 A CN201410754886 A CN 201410754886A CN 104504006 A CN104504006 A CN 104504006A
- Authority
- CN
- China
- Prior art keywords
- preset
- data
- news client
- news
- column
- 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
-
- 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/5044—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 hardware capabilities
Abstract
本发明提供了一种对新闻客户端的数据采集及解析的方法及系统,方法包括:根据获取的新闻客户端的数量创建线程,获取CPU核心数量并将每个线程绑定于相应的CPU核心;获取每个新闻客户端的栏目信息并获取每个栏目的预置属性文件,下载每个栏目的数据并生成采集节点,在将每个采集节点的数据存储于对应的采集队列后再传到解析单元;解析每个栏目的属性信息并获取每条新闻对应的正文信息,形成每条新闻数据的解析节点并存于预置解析队列中;将同一CPU核心上预置解析队列中的数据存储于对应的预置输出队列,以便将预置输出队列中的数据传送至预置数据库,且基于预置数据库中的数据实现对新闻客户端数据的监管。该方法可提高数据处理效率。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种对新闻客户端的数据采集及解析的方法及系统。
背景技术
随着移动互联网技术的迅猛发展,出现了很多种移动终端新闻客户端(为便于描述本申请中可简称为新闻客户端,比如搜狐新闻、今日头条、百度新闻等),其中除了包括主流媒体的新闻客户端,还包括聚合类的新闻客户端。该些新闻客户端的影响日益扩大且发挥了积极的作用,与在互联网上看新闻相比,新闻客户端的新闻传播速度更为及时,实时性更强,有很多都是事件现场的亲历者在第一时间传播而成为事件发展的源头信息,此外,使用新闻客户端的用户参与度更高,因此传播的范围更广。
目前,新闻监管部门对于新闻客户端发布的信息的监管还处于人工监管状态,不仅工作效率低,而且对于通过新闻客户端传播的负面信息很难及时发现及控制,此外,针对新闻客户端数据监管方面,在国内外相关领域也未发现公开过更为有效的方案。
总之,现有技术中对于新闻客户端的数据处理的方案还不够理想。
发明内容
本发明提供了一种对新闻客户端的数据采集及解析的方法及系统,采用多个CPU核心同步处理及多线程并行处理的方式对新闻客户端的数据进行采集及解析,可解决上述现有技术中的不足,可提高数据处理效率。
根据本发明的一方面,本发明提出了一种对新闻客户端的数据采集及解析的方法,所述方法应用于对新闻客户端的并行数据采集及解析的系统,包括:
根据获取到的新闻客户端的数量创建相同数量的线程,获取系统的中央处理器CPU的核心数量并根据预设规则将每个线程绑定在相应的CPU核心上,其中,每个线程对应处理一个新闻客户端的数据;
获取每个新闻客户端的栏目信息并获取每个栏目对应的预置属性文件,根据获取结果遍历下载每个栏目中的数据并生成相应的采集节点,在将每个新闻客户端所有栏目的采集节点中的数据存储于该新闻客户端对应的采集队列后再传送到解析单元,其中,所述栏目信息包括栏目名称、栏目地址和栏目数量;
根据接收到的数据解析出每个栏目的属性信息,并根据解析结果获取每条新闻对应的正文信息,再根据每条新闻的预置标识与所述正文信息做关联,形成每条新闻数据的解析节点,并将每个解析节点存储于预置解析队列中;
将同一CPU核心上的所有预置解析队列中的数据存储于对应的预置输出队列中,当接收到输出指令时则将预置输出队列中的数据传送于预置数据库内,以便基于预置数据库中的数据实现对新闻客户端数据的监管。
优选地,根据预设规则将每个线程绑定在相应的CPU核心上,包括:
根据所述新闻客户端的数量N及CPU的核心数量C取模,并将第n个线程绑定在第n%C个CPU的核心上,其中,N、C和n均为正整数,N≥1,C ≥1且n≥1。
优选地,所述方法还包括:
获取新闻客户端的数量,具体为:通过读取预置配置文件获取新闻客户端的数量;
获取系统的中央处理器CPU的核心数量,具体为:根据预置程序自动获取CPU的核心数量;
获取每个新闻客户端的栏目信息,具体为:通过读取预置配置文件获取每个新闻客户端的栏目信息;
其中,所述预置配置文件中包括:新闻客户端的数量、新闻客户端的名称、每个新闻客户端对应的栏目信息。
优选地,所述方法还包括:
通过读取预置配置文件获取每个CPU核心的预置使用率阈值及在所述预置使用率阈值下可持续使用的预置持续时间;
若在所述预置持续时间段内的任一CPU核心的使用率超过预置使用率阈值,则将该CPU核心上绑定的预设数量的线程解除绑定,以便将解除绑定的线程重新绑定到低使用率的CPU核心上;
其中,所述预置配置文件中还包括:每个CPU核心的预置使用率阈值及在所述预置使用率阈值下可持续使用的预置持续时间。
优选地,所述方法还包括:
获取每个新闻客户端的数据流量,根据获取结果设置遍历下载每个新闻客户端包含的每个栏目中的数据的时间间隔,并将所述时间间隔存储于预置配置文件中;
所述遍历下载每个栏目中的数据,包括:
通过读取预置配置文件获取所述时间间隔并根据所述时间间隔遍历下载每个栏目中的数据。
根据本发明的另一方面,本发明还提出了对新闻客户端的数据采集及解析的系统,包括:
线程管理单元,用于根据获取到的新闻客户端的数量创建相同数量的线程,获取系统的中央处理器CPU的核心数量并根据预设规则将每个线程绑定在相应的CPU核心上,其中,每个线程对应处理一个新闻客户端的数据;
采集单元,用于获取每个新闻客户端的栏目信息并获取每个栏目对应的预置属性文件,根据获取结果遍历下载每个栏目中的数据并生成相应的采集节点,在将每个新闻客户端所有栏目的采集节点中的数据存储于该新闻客户端对应的采集队列后再传送到解析单元,其中,所述栏目信息包括栏目名称、栏目地址和栏目数量;
解析单元,用于根据接收到的数据解析出每个栏目的属性信息,并根据解析结果获取每条新闻对应的正文信息,再根据每条新闻的预置标识与所述正文信息做关联,形成每条新闻数据的解析节点,并将每个解析节点存储于预置解析队列中;
存储单元,用于将同一CPU核心上的所有预置解析队列中的数据存储于对应的预置输出队列中,当接收到输出指令时则将预置输出队列中的数据传送于预置数据库内,以便基于预置数据库中的数据实现对新闻客户端数据的监管。
优选地,所述线程管理单元,具体用于:
根据所述新闻客户端的数量N及CPU的核心数量C取模,并将第n个线程绑定在第n%C个CPU的核心上,其中,N、C和n均为正整数,N≥1,C ≥1且n≥1。
优选地,所述系统还包括:
所述线程管理单元,具体用于:通过读取预置配置文件获取新闻客户端的数量,且根据预置程序自动获取CPU的核心数量;
所述采集单元,具体用于:通过读取预置配置文件获取每个新闻客户端的栏目信息;
其中,所述预置配置文件中包括:新闻客户端的数量、新闻客户端的名称、每个新闻客户端对应的栏目信息。
优选地,所述线程管理单元,还用于:
通过读取预置配置文件获取每个CPU核心的预置使用率阈值及在所述预置使用率阈值下可持续使用的预置持续时间;
若在所述预置持续时间段内的任一CPU核心的使用率超过预置使用率阈值,则将该CPU核心上绑定的预设数量的线程解除绑定,以便将解除绑定的线程重新绑定到低使用率的CPU核心上;
其中,所述预置配置文件中还包括:每个CPU核心的预置使用率阈值及在所述预置使用率阈值下可持续使用的预置持续时间。
优选地,所述系统还包括:
设置单元,用于获取每个新闻客户端的数据流量,根据获取结果设置遍历下载每个新闻客户端包含的每个栏目中的数据的时间间隔,并将所述时间间隔存储于预置配置文件中;
所述采集单元,具体用于:
通过读取预置配置文件获取所述时间间隔并根据所述时间间隔遍历下载每个栏目中的数据。
本发明提供的对新闻客户端的数据采集及解析的方法及系统实施例,可根据新闻客户端的数量创建多个线程并根据预设规则将每个线程绑定在相应的CPU核心上,以使得每个线程对应处理一个新闻客户端的数据,再根据新闻客户端的栏目信息及每个栏目的预置属性文件遍历下载每个栏目中的数据并生成相应的采集节点,在将每个新闻客户端所有栏目的采集节点的数据存储于该新闻客户端对应的采集队列后再传送到解析单元,解析单元则根据解析出的每个栏目的属性信息获取每条新闻对应的正文信息,再根据每条新闻的预置标识与正文信息做关联并形成每条新闻数据的解析节点并将每个解析节点存储于预置解析队列中,然后将同一CPU核心上的所有预置解析队列中的数据存储于对应的预置输出队列中,当接收到输出指令时则可将预置输出队列中的数据传送于预置数据库内,以便基于预置数据库中的数据实现对新闻客户端数据的监管。通过在上述线程分配、数据采集、数据解析、数据存储及数据输出过程中均采用多个CPU核心同步处理及多线程并行处理的方式,可提高整个系统的处理性能,并提高数据采集及解析的效率,进而提高对新闻客户端的数据进行监控和管理的效率。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的对新闻客户端的数据采集及解析的方法的流程示意图;
图2为发明实施例提供的对新闻客户端的数据采集及解析的系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
参看图1,为本发明实施例提供的对新闻客户端的数据采集及解析的方法的流程示意图。
在本实施例中,该方法应用于对新闻客户端的数据采集及解析的系统,该方法可具体包括如下步骤:
S101,根据获取到的新闻客户端的数量创建相同数量的线程,获取系统的中央处理器CPU的核心数量并根据预设规则将每个线程绑定在相应的CPU核心上。
在系统硬盘的预设位置可预先存储有预置配置文件,该预置配置文件中可包括新闻客户端的数量、新闻客户端的名称、每个新闻客户端对应的栏目信息、每个CPU核心的预置使用率阈值、在所述预置使用率阈值下可持续使用的预置持续时间、遍历下载每个新闻客户端包含的每个栏目中的数据的时间间隔等等信息。
在该步骤中,首先,可通过读取预置配置文件获取新闻客户端的数量,并且创建与新闻客户端相同数量的线程,以便将每个新闻客户端分配到一个线程上,使得每个线程对应处理一个新闻客户端的数据。
可根据预置程序自动获取CPU的核心数量,并根据预设规则将每个线程绑定在相应的CPU核心上,具体可为:
假设新闻客户端的数量为N,CPU的核心数量为C,则可根据新闻客户端的数量N及CPU的核心数量C取模,并将第n个线程绑定在第n%C个CPU的核心上,其中,N、C和n均为正整数,N≥1,C ≥1且n≥1。
比如,N为10,C为3,也就是新闻客户端的数量为10个(比如第0个新闻客户端至第9个新闻客户端),对应创建的线程数量也为10个(第0线程至第9线程),CPU的核心数量为3个(第0核至第2核),根据上述预置规则,则可将第0线程、第3线程、第6线程、第9线程绑定在第0核上;可将第1线程、第4线程、第7线程绑定在第1核上;可将第2线程、第5线程、第8线程绑定在第2核上,也就是通过计算线程号与核心数量的余数,并将余数相同的线程绑定在同一CPU核心上,以便以多个CPU核心同步处理及多线程并行处理的方式对多个新闻客户端的数据进行采集、分析等处理。
S102,获取每个新闻客户端的栏目信息并获取每个栏目对应的预置属性文件,根据获取结果遍历下载每个栏目中的数据并生成相应的采集节点,在将每个新闻客户端的每个栏目的采集节点中的数据存储于该新闻客户端对应的采集队列后再传送到对应的解析单元。
在该步骤中,可先通过读取预置配置文件获取每个新闻客户端的栏目信息,所述栏目信息可包括栏目名称、栏目地址、栏目数量等等信息。比如,某一新闻客户端包括8个栏目,则该新闻客户端对应的线程为对应处理该8个栏目所包含的数据。
再获取每个栏目对应的预置属性文件(比如可为json文件、xml文件、html文件等,此处以json文件为例进行说明),可通过在预置位置找到每个栏目对应的json文件,该json文件中可以预置格式存储有每个栏目中的每条新闻的标题、摘要、正文链接、时间戳等信息。
然后可根据上述获取到的每个新闻客户端的栏目信息及json文件遍历下载每个栏目中数据并且每个栏目对应生成一个采集节点。
将每个新闻客户端中的每个栏目的所有采集节点中的数据都存储于该新闻客户端对应的采集队列中,再将该新闻采集队列中的数据传送到解析单元,其中,对于采集队列的管理可采用CPU/MEM密集型算法优化多线程队列的读写操作,以保证读写操作的原子性。
S103,根据接收到的数据解析出每个栏目的属性信息,并根据解析结果获取每条新闻对应的正文信息,再根据每条新闻的预置标识与所述正文信息做关联,形成每条新闻数据的解析节点,并将每个解析节点存储于预置解析队列中。
由于每个新闻客户端的内容格式可能都不同,因此每个新闻客户端都可对应设置一个解析子单元,并且可根据实际情况设置每个解析子单元的执行策略,所有执行策略的共同点,就是都需要将在采集步骤中获取的json文件进行解析以得到每个栏目的属性信息,该属性信息可包括每条新闻的标题、摘要、正文链接、时间戳等。
然后再根据属性信息中的每条新闻的正文链接下载对应的正文信息,并根据每条新闻的预置标识(ID)与所述正文信息做关联形成每条新闻数据的解析节点,并可将每个解析节点存储于预置解析队列中。
S104,将同一CPU核心上的所有预置解析队列中的数据存储于对应的预置输出队列中,当接收到输出指令时则将预置输出队列中的数据传送于预置数据库内,以便基于预置数据库中的数据实现对新闻客户端数据的监督和管理。
可向每个CPU核心设置一个预置输出队列,可根据预置输出队列管理策略将同一个CPU核心上的所有预置解析队列中的数据存储于对应的预置输出队列中,当预置输出队列接收到输出指令时,则可将所有预置输出队列中的数据传送到预置数据库中。
其中,在预置输出队列中也可采用CPU/MEM密集型算法优化多线程队列的读写操作,以保证读写操作的原子性。
进一步的,还可通过读取预置配置文件获取每个CPU核心的预置使用率阈值及在所述预置使用率阈值下的预置持续时间,若在所述预置持续时间段内的任一CPU核心的使用率超过预置使用率阈值,则将该CPU核心上绑定的预设数量的线程解除绑定,以便将解除绑定的线程重新绑定到低使用率的CPU核心上。
比如,可根据系统需要,每个预设时间(比如10秒),通过读取预置配置文件可知第1核的预置使用率阈值为85%,在该使用率阈值下可持续的预置持续时间为10分钟,则当检测到该第1核的使用率大于等于85%且持续时间大于等于10分钟,则可认为该第1核为超负载运行,此时,可将该第1核上预设数量的线程解除绑定(该预设数量可根据需要进行设置,比如为1个线程),则可将该解除绑定的一个线程绑定到其他低利用率的CPU核心上,该低利用率也可通过上述方式检测得到,以此可根据CPU核心的负载率,实时调整绑定于每个CPU核心上的线程数量,以实现负载均衡,进而提高系统的稳定性。
进一步的,还可预先监测并统计每个新闻客户端的数据流量,根据每个新闻客户端的数据流量来设置遍历下载每个新闻客户端包含的每个栏目中的数据的时间间隔,并将所述时间间隔存储于预置配置文件中。
基于此,在S102中的遍历下载每个栏目中的数据,可具体为通过读取预置配置文件获取每个新闻客户端包含的每个栏目中的数据的时间间隔,并根据该时间间隔遍历下载每个新闻客户端的每个栏目中的数据,以便根据每个新闻客户端的数据流量来设置遍历下载的时间间隔,避免数据流量较小的新闻客户端遍历下载的操作过于频繁,进而避免系统做不必要的无用功。
本发明提供的对新闻客户端的数据采集及解析的方法实施例,该方法可广泛用于舆情监测、新闻监管等领域,可根据新闻客户端的数量创建多个线程并根据预设规则将每个线程绑定在相应的CPU核心上,以使得每个线程对应处理一个新闻客户端的数据,再根据新闻客户端的栏目信息及每个栏目的预置属性文件遍历下载每个栏目中的数据并生成相应的采集节点,在将每个新闻客户端所有栏目的采集节点的数据存储于该新闻客户端对应的采集队列后再传送到解析单元,解析单元则根据解析出的每个栏目的属性信息获取每条新闻对应的正文信息,再根据每条新闻的预置标识与正文信息做关联并形成每条新闻数据的解析节点并将每个解析节点存储于预置解析队列中,然后将同一CPU核心上的所有预置解析队列中的数据存储于对应的预置输出队列中,当接收到输出指令时则可将预置输出队列中的数据传送于预置数据库内,以便基于预置数据库中的数据实现对新闻客户端数据的监管。通过在上述线程分配、数据采集、数据解析、数据存储及数据输出过程中均采用多个CPU核心同步处理及多线程并行处理的方式,提高整个系统的处理性能,并提高数据采集及解析的效率,进而提高对新闻客户端的数据进行监控和管理的效率。
对应上述本发明对新闻客户端的数据采集及解析的方法实施例,还提供了对新闻客户端的数据采集及解析的系统实施例,下面结合附图进行具体说明。
参看图2,为本发明实施例提供的对新闻客户端的数据采集及解析的系统的结构示意图。
在本实施例中,该对新闻客户端的数据采集及解析的系统,可包括:
线程管理单元21,用于根据获取到的新闻客户端的数量创建相同数量的线程,获取系统的中央处理器CPU的核心数量并根据预设规则将每个线程绑定在相应的CPU核心上。
其中,每个线程对应处理一个新闻客户端的数据。
采集单元22,用于获取每个新闻客户端的栏目信息并获取每个栏目对应的预置属性文件,根据获取结果遍历下载每个栏目中的数据并生成相应的采集节点,在将每个新闻客户端的每个栏目的采集节点中的数据存储于该新闻客户端对应的采集队列后再传送到对应的解析单元。
其中,所述栏目信息包括栏目名称、栏目地址和栏目数量等。
解析单元23,用于根据接收到的数据解析出每个栏目的属性信息,并根据解析结果获取每条新闻对应的正文信息,再根据每条新闻的预置标识与所述正文信息做关联,形成每条新闻数据的解析节点,并将每个解析节点存储于预置解析队列中。
存储单元24,用于将同一CPU核心上的所有预置解析队列中的数据存储于对应的预置输出队列中,当接收到输出指令时则将预置输出队列中的数据传送于预置数据库内,以便基于预置数据库中的数据实现对新闻客户端数据的监管。
进一步的,所述线程管理单元21,可具体用于:
根据所述新闻客户端的数量N及CPU的核心数量C取模,并将第n个线程绑定在第n%C个CPU的核心上,其中,N、C和n均为正整数,N≥1,C ≥1且n≥1。
进一步的,所述线程管理单元21,还可具体用于:通过读取预置配置文件获取新闻客户端的数量,且根据预置程序自动获取CPU的核心数量;
所述采集单元22,可具体用于:通过读取预置配置文件获取每个新闻客户端的栏目信息;
其中,所述预置配置文件中包括:新闻客户端的数量、新闻客户端的名称、每个新闻客户端对应的栏目信息。
进一步的,所述线程管理单元21,还可用于:
通过读取预置配置文件获取每个CPU核心的预置使用率阈值及在所述预置使用率阈值下的预置持续时间;若在所述预置持续时间段内的任一CPU核心的使用率超过预置使用率阈值,则将该CPU核心上绑定的预设数量的线程解除绑定,以便将解除绑定的线程重新绑定到低使用率的CPU核心上;
其中,所述预置配置文件中还包括:每个CPU核心的预置使用率阈值及在所述预置使用率阈值下的预置持续时间。
进一步的,该系统,还可包括:
设置单元,用于获取每个新闻客户端的数据流量,根据获取结果设置遍历下载每个新闻客户端包含的每个栏目中的数据的时间间隔,并将获取到的所述时间间隔存储于预置配置文件中;
基于此,所述采集单元22,可具体用于:
通过读取预置配置文件获取所述时间间隔并根据所述时间间隔遍历下载每个栏目中的数据。
本发明提供的对新闻客户端的数据采集及解析的系统实施例,该系统可广泛用于舆情监测、新闻监管等领域,可根据新闻客户端的数量创建多个线程并根据预设规则将每个线程绑定在相应的CPU核心上,以使得每个线程对应处理一个新闻客户端的数据,再根据新闻客户端的栏目信息及每个栏目的预置属性文件遍历下载每个栏目中的数据并生成相应的采集节点,在将每个新闻客户端所有栏目的采集节点的数据存储于该新闻客户端对应的采集队列后再传送到解析单元,解析单元则根据解析出的每个栏目的属性信息获取每条新闻对应的正文信息,再根据每条新闻的预置标识与正文信息做关联并形成每条新闻数据的解析节点并将每个解析节点存储于预置解析队列中,然后将同一CPU核心上的所有预置解析队列中的数据存储于对应的预置输出队列中,当接收到输出指令时则可将预置输出队列中的数据传送于预置数据库内,以便基于预置数据库中的数据实现对新闻客户端数据的监管。通过在上述线程分配、数据采集、数据解析、数据存储及数据输出过程中均采用多个CPU核心同步处理及多线程并行处理的方式,提高整个系统的处理性能,并提高数据采集及解析的效率,进而提高对新闻客户端的数据进行监控和管理的效率。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明所提供的对新闻客户端的数据采集及解析的方法及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种对新闻客户端的数据采集及解析的方法,其特征在于,所述方法应用于对新闻客户端的并行数据采集及解析的系统,包括:
根据获取到的新闻客户端的数量创建相同数量的线程,获取系统的中央处理器CPU的核心数量并根据预设规则将每个线程绑定在相应的CPU核心上,其中,每个线程对应处理一个新闻客户端的数据;
获取每个新闻客户端的栏目信息并获取每个栏目对应的预置属性文件,根据获取结果遍历下载每个栏目中的数据并生成相应的采集节点,在将每个新闻客户端所有栏目的采集节点中的数据存储于该新闻客户端对应的采集队列后再传送到解析单元,其中,所述栏目信息包括栏目名称、栏目地址和栏目数量;
根据接收到的数据解析出每个栏目的属性信息,并根据解析结果获取每条新闻对应的正文信息,再根据每条新闻的预置标识与所述正文信息做关联,形成每条新闻数据的解析节点,并将每个解析节点存储于预置解析队列中;
将同一CPU核心上的所有预置解析队列中的数据存储于对应的预置输出队列中,当接收到输出指令时则将预置输出队列中的数据传送于预置数据库内,以便基于预置数据库中的数据实现对新闻客户端数据的监管。
2.如权利要求1所述的方法,其特征在于,根据预设规则将每个线程绑定在相应的CPU核心上,包括:
根据所述新闻客户端的数量N及CPU的核心数量C取模,并将第n个线程绑定在第n%C个CPU的核心上,其中,N、C和n均为正整数,N≥1,C ≥1且n≥1。
3.如权利要求1或2所述的方法, 其特征在于,还包括:
获取新闻客户端的数量,具体为:通过读取预置配置文件获取新闻客户端的数量;
获取系统的中央处理器CPU的核心数量,具体为:根据预置程序自动获取CPU的核心数量;
获取每个新闻客户端的栏目信息,具体为:通过读取预置配置文件获取每个新闻客户端的栏目信息;
其中,所述预置配置文件中包括:新闻客户端的数量、新闻客户端的名称、每个新闻客户端对应的栏目信息。
4.如权利要求3所述的方法,其特征在于,还包括:
通过读取预置配置文件获取每个CPU核心的预置使用率阈值及在所述预置使用率阈值下可持续使用的预置持续时间;
若在所述预置持续时间段内的任一CPU核心的使用率超过预置使用率阈值,则将该CPU核心上绑定的预设数量的线程解除绑定,以便将解除绑定的线程重新绑定到低使用率的CPU核心上;
其中,所述预置配置文件中还包括:每个CPU核心的预置使用率阈值及在所述预置使用率阈值下可持续使用的预置持续时间。
5.如权利要求1所述的方法,其特征在于,还包括:
获取每个新闻客户端的数据流量,根据获取结果设置遍历下载每个新闻客户端包含的每个栏目中的数据的时间间隔,并将所述时间间隔存储于预置配置文件中;
所述遍历下载每个栏目中的数据,包括:
通过读取预置配置文件获取所述时间间隔并根据所述时间间隔遍历下载每个栏目中的数据。
6.一种对新闻客户端的数据采集及解析的系统,其特征在于,包括:
线程管理单元,用于根据获取到的新闻客户端的数量创建相同数量的线程,获取系统的中央处理器CPU的核心数量并根据预设规则将每个线程绑定在相应的CPU核心上,其中,每个线程对应处理一个新闻客户端的数据;
采集单元,用于获取每个新闻客户端的栏目信息并获取每个栏目对应的预置属性文件,根据获取结果遍历下载每个栏目中的数据并生成相应的采集节点,在将每个新闻客户端所有栏目的采集节点中的数据存储于该新闻客户端对应的采集队列后再传送到解析单元,其中,所述栏目信息包括栏目名称、栏目地址和栏目数量;
解析单元,用于根据接收到的数据解析出每个栏目的属性信息,并根据解析结果获取每条新闻对应的正文信息,再根据每条新闻的预置标识与所述正文信息做关联,形成每条新闻数据的解析节点,并将每个解析节点存储于预置解析队列中;
存储单元,用于将同一CPU核心上的所有预置解析队列中的数据存储于对应的预置输出队列中,当接收到输出指令时则将预置输出队列中的数据传送于预置数据库内,以便基于预置数据库中的数据实现对新闻客户端数据的监管。
7.如权利要求6所述的系统,其特征在于,所述线程管理单元,具体用于:
根据所述新闻客户端的数量N及CPU的核心数量C取模,并将第n个线程绑定在第n%C个CPU的核心上,其中,N、C和n均为正整数,N≥1,C ≥1且n≥1。
8.如权利要求6或7所述的系统, 其特征在于,还包括:
所述线程管理单元,具体用于:通过读取预置配置文件获取新闻客户端的数量,且根据预置程序自动获取CPU的核心数量;
所述采集单元,具体用于:通过读取预置配置文件获取每个新闻客户端的栏目信息;
其中,所述预置配置文件中包括:新闻客户端的数量、新闻客户端的名称、每个新闻客户端对应的栏目信息。
9.如权利要求8所述的系统,其特征在于,所述线程管理单元,还用于:
通过读取预置配置文件获取每个CPU核心的预置使用率阈值及在所述预置使用率阈值下可持续使用的预置持续时间;
若在所述预置持续时间段内的任一CPU核心的使用率超过预置使用率阈值,则将该CPU核心上绑定的预设数量的线程解除绑定,以便将解除绑定的线程重新绑定到低使用率的CPU核心上;
其中,所述预置配置文件中还包括:每个CPU核心的预置使用率阈值及在所述预置使用率阈值下可持续使用的预置持续时间。
10.如权利要求6所述的系统,其特征在于,还包括:
设置单元,用于获取每个新闻客户端的数据流量,根据获取结果设置遍历下载每个新闻客户端包含的每个栏目中的数据的时间间隔,并将所述时间间隔存储于预置配置文件中;
所述采集单元,具体用于:
通过读取预置配置文件获取所述时间间隔并根据所述时间间隔遍历下载每个栏目中的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410754886.9A CN104504006B (zh) | 2014-12-11 | 2014-12-11 | 对新闻客户端的数据采集及解析的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410754886.9A CN104504006B (zh) | 2014-12-11 | 2014-12-11 | 对新闻客户端的数据采集及解析的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104504006A true CN104504006A (zh) | 2015-04-08 |
CN104504006B CN104504006B (zh) | 2017-12-01 |
Family
ID=52945404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410754886.9A Active CN104504006B (zh) | 2014-12-11 | 2014-12-11 | 对新闻客户端的数据采集及解析的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104504006B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484537A (zh) * | 2016-09-30 | 2017-03-08 | 网易(杭州)网络有限公司 | 一种cpu核资源的分配方法和设备 |
CN106970998A (zh) * | 2017-04-06 | 2017-07-21 | 北京奇虎科技有限公司 | 新闻数据的更新方法及装置 |
CN108090105A (zh) * | 2016-11-22 | 2018-05-29 | 北京国双科技有限公司 | 栏目与文章页的匹配方法和装置 |
CN108182233A (zh) * | 2017-12-27 | 2018-06-19 | 苏州麦迪斯顿医疗科技股份有限公司 | 一种分布式数据抽取方法、装置、计算机设备及存储介质 |
CN108536865A (zh) * | 2018-04-23 | 2018-09-14 | 昆山融捷信息技术有限公司 | 跨平台大数据信息智能采集方法 |
CN108959636A (zh) * | 2018-07-25 | 2018-12-07 | 北京京东金融科技控股有限公司 | 数据处理方法、装置、系统、计算机可读介质 |
CN113407527A (zh) * | 2020-11-20 | 2021-09-17 | 广东美云智数科技有限公司 | 一种权限数据的采集方法、管理装置以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129508A1 (en) * | 2004-12-09 | 2006-06-15 | International Business Machines Corporation | On-site reclamation of off-site copy storage volumes using multiple, parallel processes |
CN102073683A (zh) * | 2010-12-22 | 2011-05-25 | 四川大学 | 一种分布式的实时新闻信息采集系统 |
CN103258017A (zh) * | 2013-04-24 | 2013-08-21 | 中国科学院计算技术研究所 | 一种并行的垂直交叉网络数据采集方法及系统 |
CN104111983A (zh) * | 2014-06-30 | 2014-10-22 | 中国科学院信息工程研究所 | 一种开放式的多源数据采集系统及方法 |
-
2014
- 2014-12-11 CN CN201410754886.9A patent/CN104504006B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129508A1 (en) * | 2004-12-09 | 2006-06-15 | International Business Machines Corporation | On-site reclamation of off-site copy storage volumes using multiple, parallel processes |
CN102073683A (zh) * | 2010-12-22 | 2011-05-25 | 四川大学 | 一种分布式的实时新闻信息采集系统 |
CN103258017A (zh) * | 2013-04-24 | 2013-08-21 | 中国科学院计算技术研究所 | 一种并行的垂直交叉网络数据采集方法及系统 |
CN104111983A (zh) * | 2014-06-30 | 2014-10-22 | 中国科学院信息工程研究所 | 一种开放式的多源数据采集系统及方法 |
Non-Patent Citations (1)
Title |
---|
王辛等: "即时定向新闻采集技术研究", 《计算机工程与科学》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484537A (zh) * | 2016-09-30 | 2017-03-08 | 网易(杭州)网络有限公司 | 一种cpu核资源的分配方法和设备 |
CN106484537B (zh) * | 2016-09-30 | 2019-07-19 | 网易(杭州)网络有限公司 | 一种cpu核资源的分配方法和设备 |
US10514955B2 (en) | 2016-09-30 | 2019-12-24 | Netease (Hangzhou) Network Co., Ltd. | Method and device for allocating core resources of a multi-core CPU |
CN108090105A (zh) * | 2016-11-22 | 2018-05-29 | 北京国双科技有限公司 | 栏目与文章页的匹配方法和装置 |
CN106970998A (zh) * | 2017-04-06 | 2017-07-21 | 北京奇虎科技有限公司 | 新闻数据的更新方法及装置 |
CN106970998B (zh) * | 2017-04-06 | 2021-12-21 | 北京奇虎科技有限公司 | 新闻数据的更新方法及装置 |
CN108182233A (zh) * | 2017-12-27 | 2018-06-19 | 苏州麦迪斯顿医疗科技股份有限公司 | 一种分布式数据抽取方法、装置、计算机设备及存储介质 |
CN108536865A (zh) * | 2018-04-23 | 2018-09-14 | 昆山融捷信息技术有限公司 | 跨平台大数据信息智能采集方法 |
CN108959636A (zh) * | 2018-07-25 | 2018-12-07 | 北京京东金融科技控股有限公司 | 数据处理方法、装置、系统、计算机可读介质 |
CN113407527A (zh) * | 2020-11-20 | 2021-09-17 | 广东美云智数科技有限公司 | 一种权限数据的采集方法、管理装置以及存储介质 |
CN113407527B (zh) * | 2020-11-20 | 2024-03-26 | 美云智数科技有限公司 | 一种权限数据的采集方法、管理装置以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104504006B (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104504006A (zh) | 对新闻客户端的数据采集及解析的方法及系统 | |
CN110784419B (zh) | 铁路电务专业数据可视化方法及系统 | |
CN107895009B (zh) | 一种基于分布式的互联网数据采集方法及系统 | |
CN103942225B (zh) | 一种混合型应用客户端的资源调用方法、客户端及系统 | |
CN105451087A (zh) | 弹幕信息的推送方法、终端、历史数据服务器及系统 | |
CN103069413A (zh) | 基于另一个用户的用户偏好为一个用户定制显示内容 | |
CN104320679B (zh) | 一种基于hls协议的用户信息获取方法和服务器 | |
CN107977396B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
CN103927314B (zh) | 一种数据批量处理的方法和装置 | |
CN110297944B (zh) | 分布式xml数据处理方法及系统 | |
CN107888666A (zh) | 一种跨地域数据存储系统以及数据同步方法和装置 | |
CN101854399A (zh) | 一种网络数据的聚合方法及装置 | |
CN103036977A (zh) | 基于内容分发网络的业务推送方法及推送系统 | |
US9571969B1 (en) | Mobile media communications system | |
CN102752388A (zh) | 基于浏览器的交互系统、方法、浏览器和云端服务器 | |
CN105897850A (zh) | 用于cdn平台的响应处理方法、调度代理服务器及系统 | |
CN101046806B (zh) | 搜索引擎系统和方法 | |
CN113590576A (zh) | 数据库参数调整方法、装置、存储介质以及电子设备 | |
CN111651510A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN103226780A (zh) | 确定广告位频道的方法及广告投放服务器 | |
CN103248707B (zh) | 文件访问方法、系统以及设备 | |
CN109063158A (zh) | 一种网站访问排名信息查询的方法、设备、系统及介质 | |
Pandini et al. | Design web service academic information system based multiplatform | |
CN105338421A (zh) | 一种hls流媒体传输方法及装置 | |
CN103856827A (zh) | 一种基于服务模拟交互的视频内容获取方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |