CN107092632A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN107092632A CN107092632A CN201710072030.7A CN201710072030A CN107092632A CN 107092632 A CN107092632 A CN 107092632A CN 201710072030 A CN201710072030 A CN 201710072030A CN 107092632 A CN107092632 A CN 107092632A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- task
- configuration
- target proxy
- 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
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/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- 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
- 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
Abstract
本发明实施例提供一种数据处理方法及装置。其中,方法包括如下的步骤:获取有关网络数据处理规则的配置信息;根据所述配置信息,生成配置文件;从网络侧获取数据任务指示站点的目标网页;根据所述配置文件,从所述目标网页中获取所述需求数据。本发明实施例提供的技术方案,在获取到配置信息后,即可根据配置信息生成相应的配置文件,在进行网络侧数据获取过程中以该配置文件的方式遍历网页,进而从该网页中获取到所需的数据,简化了数据爬取工具的二次开发难度,使用起来更加便捷。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法及装置。
背景技术
近年来,随着网络信息爆炸式的增长,如何有效的在网络中获取有用的信息已变得极其困难。目前,爬虫技术在丰富公司数据、获取多元数据中扮演着重要的作用。同时爬虫技术也是数据挖掘中不可缺少的工具。
目前,市面上的爬虫工具较多,例如:Scrapy、Larbin、Heritrix等等。其中,Scrapy是一个web(网页)抓取框架,提供了多种类型爬虫的基类,可以抓取web站点,并从页面中提取结构化的数据。Larbin是一个开源的网络爬虫工具,能够记录web页面的URL(UniformResource Locator,统一资源定位符)并进行抓取,保存原始网页,可作为通用搜索引擎的信息来源。Heritrix是一个开源、可拓展的web爬虫,以递归的方式对web页面进行深度优先遍历。
上述各爬虫工具都是供开发人员使用的爬虫框架。专业的开发人员需对爬虫框架进行二次开发,以得到能够从目标web站点获取到所需数据的爬虫软件;然后执行该爬虫软件以获取所需的数据。
发明内容
现有,爬虫框架为使用者提供了一些API(Application Program Interface,应用程序接口)。使用者可根据这些API,对爬虫框架进行二次开发,以得到能够从目标web站点获取到所需数据的爬虫软件。对于企业中专注于业务的数据分析人员来说,学习编码的成本太高,且使用起来比较困难。另外,二次开发人员需针对不同的获取需求设计和编写不同的爬虫软件,开发成本高,且使用不够便捷。因此,需要提供一种开发难度低、使用更加便捷的技术方案。
于是,在本发明的一个实施例中,提供了一种数据处理方法。该方法包括:获取有关网络数据处理规则的配置信息;根据所述配置信息,生成配置文件;从网络侧获取数据任务指示站点的目标网页;根据所述配置文件,从所述目标网页中获取需求数据。本实施例提供的技术方案通过获取到的配置信息生成相应的配置文件,在进行网络侧数据获取过程中即以该配置文件的方式遍历网页,进而从网络中获取到所需的数据,简化了爬虫类工具的二次开发难度,使用起来更加便捷。
可选的,上述的方法中,所述从网络侧获取数据任务指示站点的目标网页,包括:从数据任务队列中,获取任务调度系统分配的所述数据任务;从代理池中选出一个目标代理,以通过所述目标代理向所述数据任务指定的站点发送请求;接收所述目标代理反馈的所述目标网页。代理池中提供了大量的代理IP(代理服务器),当目标代理发生代理失败(即反馈错误信息)时,能从代理池中选择其他代理以重新获取目标网页,避免出现无法获取目标网页的情况出现。
可选的,上述从网络侧获取数据任务指示站点的目标网页还包括:若所述目标代理反馈的是错误信息,则从所述代理池中重新选择一个代理作为所述目标代理。
可选的,上述的方法还可包括:若所述目标代理反馈的是错误信息,则将所述目标代理的代理标识位加预设值;若所述目标代理的代理标识位的数值大于阈值,则将所述目标代理从所述代理池中移除;若所述目标代理的代理标识位的数值小于阈值,则将所述目标代理移动到所述代理池的队列队尾。采用上述方式对代理池进行维护,可使得代理池中的代理IP都充分可用,有助于提高目标网页的获取效率。
可选的,上述的方法还可包括:若所述数据任务被中断,则将中断时剩余未完成的任务记为新任务;将所述新任务添加到所述数据任务队列中。因为数据任务队列中保存有上次未处理完成的任务,后续调度时会继续从数据任务队列中分配任务给相应的数据获取节点,所以不会出现重复处理的情况。
可选的,上述获取有关网络数据处理规则的配置信息,包括:展现配置界面;获取所述配置界面上输入的有关网络数据处理规则的所述配置信息。为爬虫类软件(亦或数据爬虫程序)提供二次开发配置界面,二次开发人员或非程序开发人员只需通过配置界面上的提示输入需求信息即可完成配置文件的设置,整体降低了数据爬取工具的二次开发的难度,使用起来更加便捷。
可选的,所述配置信息可包括:数据位置定位规则信息、数据输出格式信息和数据清洗规则信息中的一种或多种;相应的,上述的根据所述配置信息,生成配置文件,包括:根据所述数据位置定位规则信息,生成数据解析配置子文件;和/或根据所述数据输出格式信息,生成数据输出格式配置子文件;和/或根据所述清洗规则信息,生成数据清洗配置子文件。
可选的,所述配置文件包括:数据解析配置子文件、数据输出格式配置子文件和数据清洗配置子文件;以及所述基于所述配置文件,从所述目标网页中获取需求数据,包括:基于所述数据解析配置子文件,在所述目标网页中定位出欲抓取数据的位置;从所述目标网页中解析出所述位置处的数据,得到第一数据;将所述第一数据的格式转换为所述数据输出格式配置子文件指定的数据输出格式,得到第二数据;根据所述数据清洗配置子文件,对所述第二数据进行清洗得到所述需求数据。
在本发明的另一实施例中,提供了一种数据处理装置。该装置包括:第一获取模块,用于获取有关网络数据处理规则的配置信息;生成模块,用于根据所述配置信息生成配置文件;第二获取模块,用于从网络侧获取数据任务指示站点的目标网页;根据所述配置文件,从所述目标网页中获取需求数据。
在一种可能的设计中,数据处理装置的结构中包含处理器和存储器,所述存储器用于存储支持所述数据处理装置执行上述数据处理方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述数据处理装置还可以包括通讯接口,用于实现所述数据处理装置与其他设备或通信网络通信。
在本发明的又一实施例中,提供了一种计算机存储介质,用于存储数据处理装置所用的计算机软件指令,其包含于执行上述数据处理方法为数据处理装置所涉及的程序。
本发明实施例提供的技术方案,在获取到配置信息后,即可根据配置信息生成相应的配置文件,在进行网络侧数据爬取过程中以该配置文件的方式遍历网页并从该网页中获取到所需的数据,降低了数据爬取工具的二次开发难度,使用起来更加便捷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的数据处理方法的流程示意图;
图2为本发明另一实施例提供的数据处理方法的流程示意图;
图3为本发明实施例提供的一种实现分布式功能的架构图;
图4为本发明实施例提供的代理池维护原理图;
图5为本发明一实施例提供的数据处理装置的结构框图;
图6为本发明另一实施例提供的数据处理装置的结构框图;
图7为本发明又一实施例提供的数据处理装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的数据处理方法的流程示意图。如图1所示,该方法包括:
101、获取有关网络数据处理规则的配置信息。
102、根据所述配置信息,生成配置文件。
103、从网络侧获取数据任务指示站点的目标网页。
104、根据所述配置文件,从所述目标网页中获取需求数据。
上述101中,所述配置信息可通过用户界面输入获得。例如,为用户展示配置界面,该配置界面中包含有至少一个空格和/或选项。用户可在空格中填入相应的信息,和/或从选项中选出至少一个目标选项,作为所述配置信息。或者,所述配置信息可从配置信息库中获得。例如,预先设置了一些配置信息,并将其存储在数据库中;需要时可根据目标网络站点的网页特点从存储设备中调取相应的配置信息即可。又例如,分别为多个目标网络站点设置对应的配置信息,需要时可通过目标网站的网站标识(例如网站名称)从数据库中获取对应的配置信息。
在一种可实现的方案中,所述配置信息可包括:数据位置定位规则信息、数据输出格式信息和数据清洗规则信息中的一种或多种。其中,所述数据位置定位规则信息可根据欲获取网络web站点的页面跳转规则,以及欲获取数据在web页面的位置等来确定。不同的web站点,其对应的数据位置定位规则也会有所不同。在具体实施时,可通过xpath(XML(可扩展标记语言)路径语言)、csspath(层叠样式表路径语言,css是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言)等方式来定位数据位置,或者使用PhantomjsDriver(其为一种浏览器内核,具有html、js等解析能力,但是没有图形用户接口GUI的浏览器程序)。该PhantomjsDriver对于js动态加载的网页有很好的解析效果。所述数据输出格式信息可自定义设置,本发明实施例对设定的数据输出格式不作具体限定。数据清洗规则可包括如下中的一种或多种操作:
对空数据、缺失数据进行数据不缺操作;
对无效的数据进行数据的替换;
将目标网页抽取的数据格式转换成为需求数据格式;
数据合并,去除重复记录;
数据拆分;
为获取到的数据添加时间戳的处理;
将错误信息单独输出,对错误数据修改;等等。
简言之,可以将数据清洗的过程看成是一个工作流,每个步骤之间存在着先后的顺序。例如,数据清洗规则执行的通常步骤顺序为:A、检查错误;B去掉重复的记录;C补上不完全的记录;D解决不一致的记录;E用测试查询来验证数据;等等。
上述102中,生成配置文件的目的是:在执行网络数据获取过程时方便调取该配置文件,以实现从网络侧获取到符合配置文件要求的数据。在一种可实现的方案中,所述配置信息可包括:数据位置定位规则信息、数据输出格式信息和数据清洗规则信息中的一种或多种。相应的,上述102可具体包括如下步骤:
根据所述数据位置定位规则信息,生成数据解析配置子文件;和/或
根据所述数据输出格式信息,生成数据输出格式配置子文件;和/或
根据所述清洗规则信息,生成数据清洗配置子文件。
在具体实施时,所述数据解析配置子文件可包含有多个解析程序(例如正则表达式);所述数据输出格式配置子文件实质上就是一些数据格式转换过程;所述数据清洗配置子文件就是将一些所需的数据摘出来,并将一些需要修补的数据进行修补,一些干扰数据进行去除等等。当所述配置文件包含有上述各子文件中的两种或三种时,可预先对这三种配置子文件的调取顺序进行设定。例如,先调取数据解析配置子文件,将所需的数据从爬取到的网页中解析出来;然后,再调取数据输出格式配置子文件,以将解析出的数据统一转换为指定的格式输出;最后,对具有统一格式的数据进行清洗,以得到有用的数据,去除干扰数据。当然,上述的调取顺序仅是一个示例,本发明实施例对此不作具体限定。
以配置文件所要求的数据需求,从网络侧获取相应的数据,即需求数据。其中,从网络侧获取需求数据的过程实质上就是从网络侧爬取数据的过程。通俗的讲,配置文件实质上就是协助已有爬虫软件(亦或称爬虫工具)进行网络数据的爬取。所述配置文件的使用可以采用如下两种方式:
方式一
执行所述配置文件,以对爬虫软件进行设置,以使所述爬虫软件以所述配置文件的方式遍历web站点,并从web站点中获取所需的数据。
方式二
采用现有的爬虫软件从网络侧爬取目标网页;然后调取所述配置文件,并执行所述配置文件,以从目标网页中抽取出所需的数据。
上述实施例提供的配置文件的使用方式为方式二,即从网络侧获取数据任务指示站点的目标网页;根据所述配置文件,从所述目标网页中获取需求数据。
本发明实施例提供的技术方案,在获取到配置信息后,即可根据配置信息生成相应的配置文件,在进行网络侧数据爬取过程中以该配置文件的方式遍历网页并从网页中获取到所需的数据,降低了数据爬取工具的二次开发难度,使用起来更加便捷。
图2示出了本发明另一实施例提供的数据处理方法的流程示意图。如图2所示,所述方法包括:
201、获取有关网络数据处理规则的配置信息。
202、根据所述配置信息,生成配置文件。
203、从数据任务队列中,获取任务调度系统分配的所述数据任务。
204、从代理池中选出一个目标代理,以通过所述目标代理向所述数据任务指定的站点发送请求。
205、接收所述目标代理反馈的所述目标网页。
206、根据所述配置文件,从所述目标网页中获取所述需求数据。
关于上述201和202可参见前述实施例中的描述,此处不再赘述。
上述203中,数据任务可以从数据任务队列中获取到。其中,数据任务队列是在获取数据之前预先将所需爬取的任务进行了拆分,以得到包含有多个数据任务的数据任务队列。通过将爬取任务划分为多个数据任务的方式,可实现爬虫的分布式功能。在具体实施时,数据任务队列可存储在Redis(存储系统)服务器中。Redis服务器是基于内存运行的数据格式为key-value(键-值)的数据存储系统。即爬虫的分布式功能与记忆功能可基于Redis来实现。爬虫服务器负责从Web服务器获取网页,并将网页存储在本地;再从已获取网页中抽取有效URL放入Redis中,使得Redis中保存一个数据任务队列。所有爬虫节点都从同一数据任务队列中获取任务,解析得到的新任务再放回数据任务队列中。如图3所示,一个站点的所有URL(Uniform Resource Locator,统一资源定位符)可以由多个运行的爬虫(如图3中的Spider1、Spider2、…Spider n)共同处理,从而能实现分布式功能。数据任务队列中的数据任务是由任务调度系统分配给爬虫节点的。任务调度系统是web爬取框架中的一个处理模块,其根据调度策略从数据任务队列中为多个爬虫节点分配数据任务。
在实际应用中会遇到如下情况:目标代理反馈的是错误信息,例如报错提示:502Bad Gateway,而非欲爬取的目标网页,此时则认为该目标代理的代理请求是失败的。当所述目标代理的代理请求失败时,需从代理池中重新选择一个新的代理作为目标代理,以完成上述的数据任务。即上述实施例提供的所述方法,还应包括如下步骤:若所述目标代理反馈的是错误信息,则从所述代理池中重新选择一个代理作为所述目标代理。一种可实现的方式是,每次请求都改变一次代理,以提高数据获取的效率,降低失败率。
这里还需要补充的是:对于一些经常发生请求失败的代理来说,可将这些代理从代理池中删除,以减少代理请求失败的概率。那么如何来判定哪些代理是需要从代理池中移除掉的代理,本发明实施例提供的一种移除方式:
S1、若所述目标代理反馈的是错误信息,则将所述目标代理的代理标识为加预设值。
S2、若所述目标代理的代理标识位的数值大于阈值,则将所述目标代理从所述代理池中移除。
S3、若所述目标代理的代理标识位的数值小于阈值,则将所述目标代理移动到所述代理池的队列队尾。
其中,上述的预设值可以是:1、2…等等,具体的可人为设定。同样的,上述的阈值也可人为设定,本发明实施例对此不作具体限定。本发明实施例提供的技术方案中使用的代理可从第三方购买,代理提供方提供API,根据请求参数不同,请求一次可获得几百到几千代理不等。如图4所示,将请求的代理(Proxy1、Proxy2、…Proxy n)存入代理池队列,当获取任务需要使用代理的时候,从代理队列中poll(轮询)一个代理,每个代理有一个自己维护的标志位;当代理请求成功时,标志位置为0;当代理请求失败时,代理标志位加预设值(例如1);当代理请求失败次数超过设定的阈值K时,代理可认为不可用,从队列移除;当代理标识位小于K时,代理移动到队尾。这样就能维护代理池,使代理池充分可用。
进一步的,上述实施例中所述的配置文件可包括:数据解析配置子文件、数据输出格式配置子文件和数据清洗配置子文件中的一个或多个。具体的,当所述配置文件包括:数据解析配置子文件、数据输出格式配置子文件和数据清洗配置子文件时,上述步骤206可具体为:
基于所述数据解析配置子文件,在所述目标网页中定位出欲抓取数据的位置;
从所述目标网页中解析出所述位置处的数据,得到第一数据;
将所述第一数据的格式转换为所述数据输出格式配置子文件指定的数据输出格式,得到第二数据;
根据所述数据清洗配置子文件,对所述第二数据进行清洗得到所述需求数据。
由上述技术方案可知,本实施例实质上就是以模板的方式配置爬虫类工具的数据获取、解析规则,并将数据以自定义方式存储等等。二次开发人员或数据分析人员只需要根据web站点的页面跳转规则、数据在web页面的指定位置、数据持久化方式将模板配好(即配置文件配置好)。然后,爬虫就会以该方式遍历web站点,从该站点中获取使用者所需要的所有数据。而现有技术种提供的爬虫工具,例如Scrapy,只是一个爬虫框架,开发人员需基于该爬虫框架进行二次开发,但是对于专注业务的数据分析人员来说,学些编码成本太高,使用起来比较困难。
进一步的,如图3所示一个站点的所有URL由多个运行的爬虫共同处理,从而能实现分布式功能。但是,如果某一个爬虫节点因为意外中断时这种分布式的功能可能会出现重复获取的情况出现。对此,本发明实施例可将当前中断时的剩余未完成的任务记为新的任务,等该意外中断的爬虫节点再次启动或有新的爬虫节点获取到该新的任务时,该爬虫节点会完成该新任务,因为不会重复处理已经完成的任务。即上述实施例提供的所述方法,还可包括如下步骤:
207、若所述数据任务被中断,则将中断时剩余未完成的任务记为新任务。
208、将所述新任务添加到数据任务队列中。
需要说明的是:上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤101至步骤103的执行主体可以为设备A;又比如,步骤101和102的执行主体可以为设备A,步骤103的执行主体可以为设备B;等等。
下面以外卖类应用场景为例,对本发明实施例提供的技术方案作进一步的说明。假设欲获取到的需求数据是某外卖类网络站点中的菜品价格及订单数据。首先,根据从事数据分析的人员通过配置界面输入的网站名称、欲获取数据(例如菜品信息)等等,生成配置文件。然后,运行爬虫工具从具有网站名称的站点上爬取所有菜品信息,例如,菜品价格及订单数量。随后,调用之前生成的配置文件,从爬取到所有菜品信息中选出所需菜品的价格和订单数量;将爬取到的菜品价格和订单数量的输出格式转换为指定格式输出;最后,将菜品价格中包含的冗余信息(例如RMB等)删除。这里需要补充的是:某些菜品是存在大份、中份和小份之分的。因此,在配置所述配置文件时,可对这类菜品进行配置,例如仅获取这类菜品中份量对应的订单数量。
图5示出了本发明一实施例提供的数据处理装置的结构框图。如图5所示,本实施例提供的所述装置包括:第一获取模块610、生成模块620和第二获取模块630。其中,第一获取模块610用于获取有关网络数据处理规则的配置信息。所述生成模块620用于根据所述配置信息,生成配置文件。第二获取模块630用于从网络侧获取数据任务指示站点的目标网页;根据所述配置文件,从所述目标网页中获取需求数据。
本实施例提供的技术方案,在获取到配置信息后,即可根据配置信息生成相应的配置文件,在进行网络侧数据爬取过程中以该配置文件的方式遍历网页并从该网页中获取到所需的数据,降低了数据爬取工具的二次开发难度,使用起来更加便捷。
进一步的,所述第一获取模块630还用于:从数据任务队列中,获取任务调度系统分配的所述数据任务;从代理池中选出一个目标代理,以通过所述目标代理向所述数据任务指定的站点发送请求;接收所述目标代理反馈的所述目标网页。
进一步的,所述第二获取模块630还用于:若所述目标代理反馈的是错误信息,则从所述代理池中重新选择一个代理作为所述目标代理。
进一步的,如图6所示,所述数据处理装置还可包括:第一处理模块640、移除模块650和移动模块660。其中,所述第一处理模块640用于当所述目标代理反馈的是错误信息时,将所述目标代理的代理标识位加预设值。移除模块650用于当所述目标代理的代理标识位的数值大于阈值时,将所述目标代理从所述代理池中移除。移动模块660用于当所述目标代理的代理标识位的数值小于阈值时,将所述目标代理移动到所述代理池的队列队尾。
进一步的,如图6所示,所述数据处理装置还可包括:第二处理模块670和添加模块680。其中,第二处理模块670用于当所述数据任务被中断时,将中断时剩余未完成的任务记为新任务;添加模块680用于将所述新任务添加到数据任务队列中。
进一步的,上述第一获取模块610还可用于:展现配置界面;获取所述配置界面上输入的所述配置信息。
进一步的,上述配置信息包括:数据位置定位规则信息、数据输出格式信息和数据清洗规则信息中的一种或多种。相应的,上述实施例中的所述生成模块620还用于:
根据所述数据位置定位规则信息,生成数据解析配置子文件;和/或
根据所述数据输出格式信息,生成数据输出格式配置子文件;和/或
根据所述清洗规则信息,生成数据清洗配置子文件。
进一步的,若所述配置文件包括:数据解析配置子文件、数据输出格式配置子文件和数据清洗配置子文件,则上述第二获取模块630还可用于:
基于所述数据解析配置子文件,在所述目标网页中定位出欲抓取数据的位置;
从所述目标网页中解析出所述位置处的数据,得到第一数据;
将所述第一数据的格式转换为所述数据输出格式配置子文件指定的数据输出格式,得到第二数据;
根据所述数据清洗配置子文件,对所述第二数据进行清洗得到所述需求数据。
这里需要说明的是:上述实施例提供的数据处理装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
在一个可能的设计中,数据处理装置的结构中包括处理器710和存储器720(如图7所示),所述存储器720用于存储支持数据处理装置执行上述数据处理方法的程序,所述处理器710被配置为用于执行所述存储器720中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器调用执行。
存储器720作为一种非非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的数据处理方法对应的程序指令/模块(例如,附图5所示的第一获取模块610、生成模块620和第二获取模块630)。处理器710通过运行存储在存储器720中的非易失性软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例的数据处理方法。
所述处理器710用于:获取有关网络数据处理规则的配置信息;根据所述配置信息,生成配置文件;从网络侧获取数据任务指示站点的目标网页;根据所述配置文件,从所述目标网页中获取需求数据。
处理器710可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本发明实施例还提供的一种计算机存储介质,用于存储数据处理装置所用的计算机软件指令,其包含用于执行上述方法实施例中的数据处理方法为数据处理装置所涉及的程序。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
本发明公开了A1、一种数据处理方法,包括:
获取有关网络数据处理规则的配置信息;
根据所述配置信息,生成配置文件;
从网络侧获取数据任务指示站点的目标网页;
根据所述配置文件,从所述目标网页中获取所述需求数据。
A2、如A1所述的方法中,所述从网络侧获取数据任务指示站点的目标网页,包括:
从数据任务队列中,获取任务调度系统分配的所述数据任务;
从代理池中选出一个目标代理,以通过所述目标代理向所述数据任务指定的站点发送请求;
接收所述目标代理反馈的所述目标网页。
A3、如A2所述的方法中,所述从网络侧获取数据任务指示站点的目标网页,还包括:
若所述目标代理反馈的是错误信息,则从所述代理池中重新选择一个代理作为所述目标代理。
A4、如A3所述的方法,还包括:
若所述目标代理反馈的是错误信息,则将所述目标代理的代理标识位加预设值;
若所述目标代理的代理标识位的数值大于阈值,则将所述目标代理从所述代理池中移除;
若所述目标代理的代理标识位的数值小于阈值,则将所述目标代理移动到所述代理池的队列队尾。
A5、如A2至A4中任一项所述的方法,还包括:
若所述数据任务被中断,则将中断时剩余未完成的任务记为新任务;
将所述新任务添加到所述数据任务队列中。
A6、如A1至A4中任一项所述的方法中,所述获取配置信息,包括:
展现配置界面;
获取所述配置界面上输入的所述配置信息。
A7、如A6所述的方法中,所述配置信息包括:数据位置定位规则信息、数据输出格式信息和数据清洗规则信息中的一种或多种;以及
所述根据所述配置信息,生成配置文件,包括:
根据所述数据位置定位规则信息,生成数据解析配置子文件;和/或
根据所述数据输出格式信息,生成数据输出格式配置子文件;和/或
根据所述清洗规则信息,生成数据清洗配置子文件。
A8、如A1至A4中任一项所述的方法中,所述配置文件包括:数据解析配置子文件、数据输出格式配置子文件和数据清洗配置子文件;以及
所述根据所述配置文件,从所述目标网页中获取需求数据,包括:
基于所述数据解析配置子文件,在所述目标网页中定位出欲抓取数据的位置;
从所述目标网页中解析出所述位置处的数据,得到第一数据;
将所述第一数据的格式转换为所述数据输出格式配置子文件指定的数据输出格式,得到第二数据;
根据所述数据清洗配置子文件,对所述第二数据进行清洗得到所述需求数据。
本发明还公开了B9、一种数据处理装置,包括:
第一获取模块,用于获取有关网络数据处理规则的配置信息;
生成模块,用于根据所述配置信息,生成配置文件;
第二获取模块,用于从网络侧获取数据任务指示站点的目标网页;根据所述配置文件,从所述目标网页中获取需求数据。
B10、如B9所述的装置中,所述第二获取模块还用于:
从数据任务队列中,获取任务调度系统分配的所述数据任务;
从代理池中选出一个目标代理,以通过所述目标代理向所述数据任务指定的站点发送请求;
接收所述目标代理反馈的所述目标网页。
B11、如B10所述的装置中,所述第二获取模块还用于:
若所述目标代理反馈的是错误信息,则从所述代理池中重新选择一个代理作为所述目标代理。
B12、如B11所述的装置,还包括:
第一处理模块,用于当所述目标代理反馈的是错误信息时,将所述目标代理的代理标识位加预设值;
移除模块,用于当所述目标代理的代理标识位的数值大于阈值时,将所述目标代理从所述代理池中移除;
移动模块,用于当所述目标代理的代理标识位的数值小于阈值时,将所述目标代理移动到所述代理池的队列队尾。
B13、如B10至B12中任一项所述的装置,还包括:
第二处理模块,用于当所述数据任务被中断时,将中断时剩余未完成的任务记为新任务;
添加模块,用于将所述新任务添加到数据任务队列中。
B14、如B9至B12中任一项所述的装置中,所述第一获取模块还用于:
展现配置界面;
获取所述配置界面上输入的所述配置信息。
B15、如B14所述的装置中,所述配置信息包括:数据位置定位规则信息、数据输出格式信息和数据清洗规则信息中的一种或多种;以及
所述生成模块还用于:
根据所述数据位置定位规则信息,生成数据解析配置子文件;和/或
根据所述数据输出格式信息,生成数据输出格式配置子文件;和/或
根据所述清洗规则信息,生成数据清洗配置子文件。
B16、如B9至B12中任一项所述的装置中,所述配置文件包括:数据解析配置子文件、数据输出格式配置子文件和数据清洗配置子文件;以及
所述第二获取模块还用于:
基于所述数据解析配置子文件,在所述目标网页中定位出欲抓取数据的位置;
从所述目标网页中解析出所述位置处的数据,得到第一数据;
将所述第一数据的格式转换为所述数据输出格式配置子文件指定的数据输出格式,得到第二数据;
根据所述数据清洗配置子文件,对所述第二数据进行清洗得到所述需求数据。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取有关网络数据处理规则的配置信息;
根据所述配置信息,生成配置文件;
从网络侧获取数据任务指示站点的目标网页;
根据所述配置文件,从所述目标网页中获取需求数据。
2.根据权利要求1所述的方法,其特征在于,所述从网络侧获取数据任务指示站点的目标网页,包括:
从数据任务队列中,获取任务调度系统分配的所述数据任务;
从代理池中选出一个目标代理,以通过所述目标代理向所述数据任务指定的站点发送请求;
接收所述目标代理反馈的所述目标网页。
3.根据权利要求2所述的方法,其特征在于,所述从网络侧获取数据任务指示站点的目标网页,还包括:
若所述目标代理反馈的是错误信息,则从所述代理池中重新选择一个代理作为所述目标代理。
4.根据权利要求3所述的方法,其特征在于,还包括:
若所述目标代理反馈的是错误信息,则将所述目标代理的代理标识位加预设值;
若所述目标代理的代理标识位的数值大于阈值,则将所述目标代理从所述代理池中移除;
若所述目标代理的代理标识位的数值小于阈值,则将所述目标代理移动到所述代理池的队列队尾。
5.根据权利要求2至4中任一项所述的方法,其特征在于,还包括:
若所述数据任务被中断,则将中断时剩余未完成的任务记为新任务;
将所述新任务添加到所述数据任务队列中。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述配置文件包括:数据解析配置子文件、数据输出格式配置子文件和数据清洗配置子文件;以及
所述根据所述配置文件,从所述目标网页中获取需求数据,包括:
基于所述数据解析配置子文件,在所述目标网页中定位出欲抓取数据的位置;
从所述目标网页中解析出所述位置处的数据,得到第一数据;
将所述第一数据的格式转换为所述数据输出格式配置子文件指定的数据输出格式,得到第二数据;
根据所述数据清洗配置子文件,对所述第二数据进行清洗得到所述需求数据。
7.一种数据处理装置,其特征在于,包括:
第一获取模块,用于获取有关网络数据处理规则的配置信息;
生成模块,用于根据所述配置信息,生成配置文件;
第二获取模块,用于从网络侧获取数据任务指示站点的目标网页;根据所述配置文件,从所述目标网页中获取需求数据。
8.根据权利要求7所述的装置,其特征在于,所述第二获取模块还用于:
从数据任务队列中,获取任务调度系统分配的所述数据任务;
从代理池中选出一个目标代理,以通过所述目标代理向所述数据任务指定的站点发送请求;
接收所述目标代理反馈的所述目标网页。
9.根据权利要求7所述的装置,其特征在于,所述第二获取模块还用于:
若所述目标代理反馈的是错误信息,则从所述代理池中重新选择一个代理作为所述目标代理。
10.根据权利要求9所述的装置,其特征在于,还包括:
第一处理模块,用于当所述目标代理反馈的是错误信息时,将所述目标代理的代理标识位加预设值;
移除模块,用于当所述目标代理的代理标识位的数值大于阈值时,将所述目标代理从所述代理池中移除;
移动模块,用于当所述目标代理的代理标识位的数值小于阈值时,将所述目标代理移动到所述代理池的队列队尾。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710072030.7A CN107092632A (zh) | 2017-02-09 | 2017-02-09 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710072030.7A CN107092632A (zh) | 2017-02-09 | 2017-02-09 | 数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107092632A true CN107092632A (zh) | 2017-08-25 |
Family
ID=59646443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710072030.7A Pending CN107092632A (zh) | 2017-02-09 | 2017-02-09 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107092632A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729508A (zh) * | 2017-10-23 | 2018-02-23 | 北京京东金融科技控股有限公司 | 信息爬取方法与装置 |
CN109002508A (zh) * | 2018-07-01 | 2018-12-14 | 东莞市华睿电子科技有限公司 | 一种基于网络爬虫的文本信息爬取方法 |
CN109597952A (zh) * | 2018-12-10 | 2019-04-09 | 江苏满运软件科技有限公司 | 网页信息处理方法、系统、电子设备和存储介质 |
CN109902217A (zh) * | 2019-03-20 | 2019-06-18 | 江苏科技大学 | 一种天文学数据筛选与下载的爬虫软件 |
CN109995824A (zh) * | 2017-12-29 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 一种对等网络中的任务调度方法及装置 |
CN110019358A (zh) * | 2017-09-30 | 2019-07-16 | 北京搜狗科技发展有限公司 | 一种数据处理方法、装置及设备和存储介质 |
CN110062025A (zh) * | 2019-03-14 | 2019-07-26 | 深圳绿米联创科技有限公司 | 数据采集的方法、装置、服务器及存储介质 |
CN111125589A (zh) * | 2018-10-31 | 2020-05-08 | 北大方正集团有限公司 | 数据采集方法及装置、计算机可读存储介质 |
CN112181961A (zh) * | 2020-09-25 | 2021-01-05 | 杭州安恒信息技术股份有限公司 | 一种网络数据的清洗方法、系统及相关装置 |
CN112231534A (zh) * | 2020-10-14 | 2021-01-15 | 上海蜜度信息技术有限公司 | 一种配置爬虫的方法与设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982162A (zh) * | 2012-12-05 | 2013-03-20 | 北京奇虎科技有限公司 | 网页信息的获取系统 |
CN103020088A (zh) * | 2011-09-27 | 2013-04-03 | 腾讯科技(深圳)有限公司 | 一种数据处理装置及方法 |
CN103279567A (zh) * | 2013-06-18 | 2013-09-04 | 重庆邮电大学 | 一种基于AJAX的Web数据采集方法及系统 |
CN105302876A (zh) * | 2015-09-28 | 2016-02-03 | 孙燕群 | 基于正则表达式的url过滤方法 |
CN105335516A (zh) * | 2015-11-04 | 2016-02-17 | 浪潮软件集团有限公司 | 一种通用采集系统的构建方法 |
CN105760545A (zh) * | 2016-03-17 | 2016-07-13 | 湖南中周至尚信息技术有限公司 | 基于可配置规则的网站数据搜索方法 |
-
2017
- 2017-02-09 CN CN201710072030.7A patent/CN107092632A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020088A (zh) * | 2011-09-27 | 2013-04-03 | 腾讯科技(深圳)有限公司 | 一种数据处理装置及方法 |
CN102982162A (zh) * | 2012-12-05 | 2013-03-20 | 北京奇虎科技有限公司 | 网页信息的获取系统 |
CN103279567A (zh) * | 2013-06-18 | 2013-09-04 | 重庆邮电大学 | 一种基于AJAX的Web数据采集方法及系统 |
CN105302876A (zh) * | 2015-09-28 | 2016-02-03 | 孙燕群 | 基于正则表达式的url过滤方法 |
CN105335516A (zh) * | 2015-11-04 | 2016-02-17 | 浪潮软件集团有限公司 | 一种通用采集系统的构建方法 |
CN105760545A (zh) * | 2016-03-17 | 2016-07-13 | 湖南中周至尚信息技术有限公司 | 基于可配置规则的网站数据搜索方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019358A (zh) * | 2017-09-30 | 2019-07-16 | 北京搜狗科技发展有限公司 | 一种数据处理方法、装置及设备和存储介质 |
CN110019358B (zh) * | 2017-09-30 | 2021-08-24 | 北京搜狗科技发展有限公司 | 一种数据处理方法、装置及设备和存储介质 |
CN107729508A (zh) * | 2017-10-23 | 2018-02-23 | 北京京东金融科技控股有限公司 | 信息爬取方法与装置 |
CN109995824A (zh) * | 2017-12-29 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 一种对等网络中的任务调度方法及装置 |
CN109995824B (zh) * | 2017-12-29 | 2022-10-04 | 阿里巴巴集团控股有限公司 | 一种对等网络中的任务调度方法及装置 |
CN109002508A (zh) * | 2018-07-01 | 2018-12-14 | 东莞市华睿电子科技有限公司 | 一种基于网络爬虫的文本信息爬取方法 |
CN109002508B (zh) * | 2018-07-01 | 2021-08-06 | 上海众引文化传播股份有限公司 | 一种基于网络爬虫的文本信息爬取方法 |
CN111125589A (zh) * | 2018-10-31 | 2020-05-08 | 北大方正集团有限公司 | 数据采集方法及装置、计算机可读存储介质 |
CN111125589B (zh) * | 2018-10-31 | 2023-09-05 | 新方正控股发展有限责任公司 | 数据采集方法及装置、计算机可读存储介质 |
CN109597952A (zh) * | 2018-12-10 | 2019-04-09 | 江苏满运软件科技有限公司 | 网页信息处理方法、系统、电子设备和存储介质 |
CN110062025B (zh) * | 2019-03-14 | 2022-09-09 | 深圳绿米联创科技有限公司 | 数据采集的方法、装置、服务器及存储介质 |
CN110062025A (zh) * | 2019-03-14 | 2019-07-26 | 深圳绿米联创科技有限公司 | 数据采集的方法、装置、服务器及存储介质 |
CN109902217A (zh) * | 2019-03-20 | 2019-06-18 | 江苏科技大学 | 一种天文学数据筛选与下载的爬虫软件 |
CN112181961A (zh) * | 2020-09-25 | 2021-01-05 | 杭州安恒信息技术股份有限公司 | 一种网络数据的清洗方法、系统及相关装置 |
CN112231534A (zh) * | 2020-10-14 | 2021-01-15 | 上海蜜度信息技术有限公司 | 一种配置爬虫的方法与设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107092632A (zh) | 数据处理方法及装置 | |
US10152488B2 (en) | Static-analysis-assisted dynamic application crawling architecture | |
US9606900B1 (en) | Intelligent automation of computer software test scripts and code requirements | |
US9864673B2 (en) | Integration process management console with error resolution interface | |
US11093242B2 (en) | Automatically mapping data while designing process flows | |
CN105205144B (zh) | 用于数据诊断优化的方法和系统 | |
US20080215389A1 (en) | Model oriented business process monitoring | |
EP3959599A1 (en) | Code completion for languages with hierarchical structures | |
US8713521B2 (en) | Discovery, analysis, and visualization of dependencies | |
CN109582289B (zh) | 规则引擎中规则流的处理方法、系统、存储介质和处理器 | |
CN108369591A (zh) | 用于缓存和参数化ir的系统和方法 | |
Valencia Parra et al. | Enabling process mining in aircraft manufactures: extracting event logs and discovering processes from complex data | |
US20140101097A1 (en) | Template based database analyzer | |
Al-Ameen et al. | A systematic and open exploration of faas research | |
EP1416439A1 (en) | Identifying solutions to computer problems by expert system using contexts and distinguishing versions | |
US20190121898A1 (en) | System and method for data management | |
US20040153881A1 (en) | Identifying solutions to computer problems in main system by service system in distributed system landscape | |
US7403933B2 (en) | Identifying solutions to computer problems in main system by service system | |
CN105069004A (zh) | 专利信息自动采集方法 | |
CN110297960A (zh) | 一种基于配置的分布式公文数据采集系统 | |
Wang et al. | RCAgent: Cloud Root Cause Analysis by Autonomous Agents with Tool-Augmented Large Language Models | |
Yang et al. | Use the harmony-SE approach to extend the advantages of MBSE | |
CN114546381A (zh) | 前端页面代码文件生成方法、装置、电子设备及存储介质 | |
US20210306236A1 (en) | System and method for triage management | |
Ganser et al. | Staged model evolution and proactive quality guidance for model libraries |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170825 |