CN105260405A - 一种网络爬虫方法及装置 - Google Patents

一种网络爬虫方法及装置 Download PDF

Info

Publication number
CN105260405A
CN105260405A CN201510609537.2A CN201510609537A CN105260405A CN 105260405 A CN105260405 A CN 105260405A CN 201510609537 A CN201510609537 A CN 201510609537A CN 105260405 A CN105260405 A CN 105260405A
Authority
CN
China
Prior art keywords
phase
current execution
configuration parameter
input data
execution phase
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
Application number
CN201510609537.2A
Other languages
English (en)
Other versions
CN105260405B (zh
Inventor
罗杰
梁家盟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisound Intelligent Technology Co Ltd
Xiamen Yunzhixin Intelligent Technology Co Ltd
Original Assignee
Beijing Yunzhisheng Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Yunzhisheng Information Technology Co Ltd filed Critical Beijing Yunzhisheng Information Technology Co Ltd
Priority to CN201510609537.2A priority Critical patent/CN105260405B/zh
Publication of CN105260405A publication Critical patent/CN105260405A/zh
Application granted granted Critical
Publication of CN105260405B publication Critical patent/CN105260405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种网络爬虫方法及装置,用于解除网络爬虫任务中相邻执行阶段之间的耦合性,从而实现网络爬虫的每个执行阶段的模块化。所述方法包括:获取网络爬虫任务的配置文件,配置文件包括网络爬虫任务的每一个执行阶段的标识、每一个执行阶段的执行顺序及每一个执行阶段对应的配置参数;根据每一个执行阶段的标识以及每一个执行阶段的执行顺序,确定网络爬虫的当前执行阶段;获取当前执行阶段的输入数据;根据当前执行阶段对应的配置参数和输入数据执行当前执行阶段。该技术方案解除了网络爬虫任务中相邻执行阶段之间的耦合性,使每个执行阶段的执行更加模块化,提高了网络爬虫的效率。

Description

一种网络爬虫方法及装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种网络爬虫方法及装置。
背景技术
爬虫作为一种自动获取网页内容的程序,是搜索引擎的重要组成部分。网络爬虫,是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。具体的爬虫任务一般分为下载、抽取、清洗、存储四个阶段,且每个阶段都有各自的输入输出,也就是说,不同阶段的输入或输出的内容、格式均有所不同,从而导致爬虫的过程不可分割,必须按照既定的阶段顺序执行,相邻两个阶段之间的耦合性较大,且网络爬虫的代码重用性低。
发明内容
本发明实施例提供一种网络爬虫方法及装置,用于解除网络爬虫任务中相邻执行阶段之间的耦合性,从而实现网络爬虫的每个执行阶段的模块化。
一种网络爬虫方法,包括以下步骤:
获取网络爬虫任务的配置文件,所述配置文件包括所述网络爬虫任务的每一个执行阶段的标识、所述每一个执行阶段的执行顺序及所述每一个执行阶段对应的配置参数;
根据所述每一个执行阶段的标识以及所述每一个执行阶段的执行顺序,确定所述网络爬虫的当前执行阶段;
获取所述当前执行阶段的输入数据,所述输入数据为所述当前执行阶段之前的上一个执行阶段的输出数据,所述输入数据或所述输出数据是通过预设的输入输出接口格式进行输入或输出的;
根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段。
本发明实施例的一些有益效果可以包括:
上述技术方案,通过确定网络爬虫任务的当前执行阶段,并将上一个执行阶段的输出数据作为当前执行阶段的输入数据,且输入数据和输出数据都是通过预设的输入输出接口格式进行输入或输出的,使得每个执行阶段的输入输出接口格式唯一,从而使每个执行阶段的输出数据都可通过预设的输入输出接口格式作为任意一个执行阶段的输入数据,解除了网络爬虫任务中相邻执行阶段之间的耦合性,使每个执行阶段的执行更加模块化,提高了网络爬虫的效率。
在一个实施例中,所述当前执行阶段的输入数据包括所述网络爬虫任务的配置文件和所述上一个执行阶段的执行结果数据。
该实施例使得当前执行阶段能够根据输入数据中的配置文件以及上一个执行阶段的执行结果数据来执行,从而确保上一个执行阶段的输出数据能够作为当前执行阶段的输入数据传递给当前执行阶段,以提高网络爬虫的效率。
在一个实施例中,所述根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段之后,所述方法还包括:
生成包括所述当前执行阶段的执行结果数据的输出数据。
该实施例中,通过生成包括当前执行阶段的执行结果数据的输出数据,从而使得当前执行阶段的输出数据能够作为下一个执行阶段的输入数据传递给下一个执行阶段,并且下一个执行阶段能够利用输入数据中当前执行阶段的执行结果来执行,从而提高网络爬虫的效率。
在一个实施例中,所述根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段,包括:
将所述输入数据中的配置参数的类型和所述当前执行阶段对应的配置参数的类型进行对比,得到所述当前执行阶段对应的配置参数中与所述输入数据中的配置参数类型不匹配的第一配置参数;
确定将所述输入数据中的配置参数转换为所述第一配置参数的转换规则;
根据所述转换规则对所述输入数据中的配置参数进行转换,得到所述当前执行阶段对应的配置参数;
根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段。
该实施例中,通过将输入数据中与当前执行阶段对应的配置参数类型不相匹配的配置参数进行转换,使得输入数据中的配置参数类型能够匹配当前执行阶段对应的配置参数类型,从而使每个执行阶段的输出数据都可作为任意一个执行阶段的输入数据,解除了网络爬虫任务中相邻执行阶段之间的耦合性,使每个执行阶段的执行更加模块化,提高了网络爬虫的效率。
在一个实施例中,所述配置文件中包括线程配置数据;所述方法还包括:
读取所述线程配置数据,所述线程配置数据中包括每一个执行阶段的单次并行执行的线程数;
按照所述每一个执行阶段的单次并行执行的线程数,执行所述每一个执行阶段。
该实施例中,通过按照每一个执行阶段的单次并行执行的线程数来执行每一个执行阶段,从而能够高效地执行网络爬虫任务的每一个执行阶段,提高网络爬虫的效率。
一种网络爬虫装置,包括:
第一获取模块,用于获取网络爬虫任务的配置文件,所述配置文件包括所述网络爬虫任务的每一个执行阶段的标识、所述每一个执行阶段的执行顺序及所述每一个执行阶段对应的配置参数;
确定模块,用于根据所述每一个执行阶段的标识以及所述每一个执行阶段的执行顺序,确定所述网络爬虫任务的当前执行阶段;
第二获取模块,用于获取所述当前执行阶段的输入数据,所述输入数据为所述当前执行阶段之前的上一个执行阶段的输出数据,所述输入数据或所述输出数据是通过预设的输入输出接口格式进行输入或输出的;
第一执行模块,用于根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段。
在一个实施例中,所述第二获取模块获取的当前执行阶段的输入数据包括所述网络爬虫任务的配置文件和所述上一个执行阶段的执行结果数据。
在一个实施例中,所述装置还包括:
生成模块,用于根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段之后,生成包括所述当前执行阶段的执行结果数据的输出数据。
在一个实施例中,所述第一执行模块包括:
对比子模块,用于将所述输入数据中的配置参数的类型和所述当前执行阶段对应的配置参数的类型进行对比,得到所述当前执行阶段对应的配置参数中与所述输入数据中的配置参数类型不匹配的第一配置参数;
确定子模块,用于确定将所述输入数据中的配置参数转换为所述第一配置参数的转换规则;
转换子模块,用于根据所述转换规则对所述输入数据中的配置参数进行转换,得到所述当前执行阶段对应的配置参数;
执行子模块,用于根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段。
在一个实施例中,所述装置还包括:
读取模块,用于读取所述配置文件中的线程配置数据,所述线程配置数据中包括每一个执行阶段的单次并行执行的线程数;
第二执行模块,用于按照所述每一个执行阶段的单次并行执行的线程数,执行所述每一个执行阶段。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种网络爬虫方法的流程图;
图2为本发明实施例中一种网络爬虫方法中步骤S14的流程图;
图3为本发明实施例中一种网络爬虫方法的流程图;
图4为本发明实施例中一种网络爬虫装置的框图;
图5为本发明实施例中一种网络爬虫装置的框图;
图6为本发明实施例中一种网络爬虫装置中第一执行模块的框图;
图7为本发明实施例中一种网络爬虫装置的框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为本发明实施例中一种网络爬虫方法的流程图。如图1所示,该网络爬虫方法包括以下步骤S11-S14:
步骤S11,获取网络爬虫任务的配置文件,配置文件包括网络爬虫任务的每一个执行阶段的标识、每一个执行阶段的执行顺序及每一个执行阶段对应的配置参数。
步骤S12,根据每一个执行阶段的标识以及每一个执行阶段的执行顺序,确定网络爬虫任务的当前执行阶段。
步骤S13,获取当前执行阶段的输入数据,输入数据为当前执行阶段之前的上一个执行阶段的输出数据,输入数据或输出数据是通过预设的输入输出接口格式进行输入或输出的。
其中,当前执行阶段的输入数据包括网络爬虫任务的配置文件和上一个执行阶段的执行结果数据,执行当前执行阶段时可根据网络爬虫任务的配置文件确定出与当前执行阶段对应的配置参数。当当前执行阶段为网络爬虫任务的第一个执行阶段时,例如下载,那么输入数据中的上一个执行阶段的执行结果数据则为空。
步骤S14,根据当前执行阶段对应的配置参数和输入数据执行当前执行阶段。
采用本发明实施例提供的技术方案,通过确定网络爬虫任务的当前执行阶段,并将上一个执行阶段的输出数据作为当前执行阶段的输入数据,且输入数据和输出数据都是通过预设的输入输出接口格式进行输入或输出的,使得每个执行阶段的输入输出接口格式唯一,从而使每个执行阶段的输出数据都可通过预设的输入输出接口格式作为任意一个执行阶段的输入数据,解除了网络爬虫任务中相邻执行阶段之间的耦合性,使每个执行阶段的执行更加模块化,提高了网络爬虫的效率。
上述方法中,步骤S13中所说的输入输出接口格式是具有唯一性和通用性的,即,预先设定的输入输出接口格式适用于网络爬虫任务的每一个执行阶段的输入或输出,以下为本发明实施例可行的一种输入输出接口格式:
defprocess_task(self,task):
#主处理程序
return[]
通过上述输入输出接口格式,网络爬虫任务的每一个执行阶段开始执行时,输入数据均用task来表示,其中,task为一个字典或者哈希表类型,输出即为处理后的task,也是字典或者哈希表类型。每一个执行阶段完成后,得到的执行结果数据可以按照列表的形式放入到task中,然后传递给下一个执行阶段,下一个执行阶段通过上述输入输出接口格式,遍历循环列表形式的上一个执行阶段的执行结果数据,并将列表中的每个元素都输入给process_task程序进行处理,处理完成后得到输出数据,继续传递给下一个执行阶段,从而完成网络爬虫任务的整个流程。
上述实施例中,task的格式为:{“key1”:“value1”,“key2”:“value2”,…,“keyN”:“valueN”,},task中的内容包括两部分:爬虫任务中的一些配置参数keyN和根据这些配置参数执行的每一个执行阶段的执行结果数据。由于不同的执行阶段对应的配置参数不同,且有可能需要一些中间结果作为输入,因此task中包括整个网络爬虫任务可能需要的所有配置参数,以方便每一个执行阶段对配置参数的提取。
以下通过两个具体实施例来说明网络爬虫任务中的每一个执行阶段的执行过程。
实施例一
在实施例一中,当前执行阶段为转换阶段,网络爬虫任务的配置文件中,与转换阶段对应的配置文件格式为:
在执行转换阶段时,通过预设的输入输出接口格式获取转换阶段的输入数据即task,该输入数据中包括网络爬虫任务的配置文件以及上一个执行阶段的执行结果顺序,根据输入数据,即可获知转换阶段对应的配置参数。上述配置文件中,workertype=“transformer”表明该执行阶段为转换阶段,“raw_code”和“code”的值为task中的配置参数keyN的名称,“rule”表示转换阶段的转换规则,首先从task中读取配置参数为“weibo_id”的值,然后根据转换规则(即拼接的方式)将“weibo_id”拼接成http://weibo.cn/[weibo_id],拼接后的值即为转换阶段的执行结果数据,将拼接后的值放入task中,从而生成包括转换阶段的执行结果数据的输出数据,该输出数据可作为下一个执行阶段的输入数据传递给下一个执行阶段,下一个执行阶段执行时就可以从task中读取到配置参数为“weibo_url”的值并使用。
实施例二
在实施例二中,当前执行阶段为存储阶段,网络爬虫任务的配置文件中,与存储阶段对应的配置文件格式为:
在执行存储阶段时,通过预设的输入输出接口格式获取存储阶段的输入数据即task,该输入数据中包括网络爬虫任务的配置文件以及上一个执行阶段的执行结果顺序,根据输入数据,即可获知存储阶段对应的配置参数。上述配置文件中,workertype=“saver”表明该执行阶段为存储阶段,buffer_num=“20000”表明缓存20000条数据,split_tag=“|”表明字段之间的分隔符为“|”,“fieldcode”的值表示task中的配置参数keyN的名称,首先从task中读取上述配置文件,以及配置文件中存储阶段对应的配置参数的值,然后将task中这些配置参数的值进行分割存储。
在一个实施例中,步骤S14之后,上述方法还包括以下步骤:生成包括当前执行阶段的执行结果数据的输出数据。当前执行阶段的输出数据中包括网络爬虫任务的配置文件和当前执行阶段的执行结果数据,这样,当当前执行阶段的输出数据作为下一个执行阶段的输入数据传递给下一个执行阶段后,下一个执行阶段就可以根据输出数据中的配置文件确定出与其相对应的配置参数,并从输入数据中读取出与其相对应的配置参数,结合当前执行阶段的执行结果数据,执行下一个执行阶段。
在一个实施例中,如图2所示,上述步骤S14可实施为以下步骤S141-S144:
步骤S141,将输入数据中的配置参数的类型和当前执行阶段对应的配置参数的类型进行对比,得到当前执行阶段对应的配置参数中与输入数据中的配置参数类型不匹配的第一配置参数。
步骤S142,确定将输入数据中的配置参数转换为第一配置参数的转换规则。
步骤S143,根据转换规则对输入数据中的配置参数进行转换,得到当前执行阶段对应的配置参数。
步骤S144,根据当前执行阶段对应的配置参数和输入数据执行当前执行阶段。
举例来说,当得到当前执行阶段对应的配置参数中与输入数据中的配置参数类型不匹配的第一配置参数之后,执行爬虫任务中的转换阶段,与转换阶段对应的配置文件格式为:
其中,“raw_code”和“code”都表示task中的配置参数keyN的名称,从上述配置文件可得出,
本实施例中,通过将输入数据中与当前执行阶段对应的配置参数类型不相匹配的配置参数进行转换,使得输入数据中的配置参数类型能够匹配当前执行阶段对应的配置参数类型,从而使每个执行阶段的输出数据都可作为任意一个执行阶段的输入数据,解除了网络爬虫任务中相邻执行阶段之间的耦合性,使每个执行阶段的执行更加模块化,提高了网络爬虫的效率。
在一个实施例中,网络爬虫任务的配置文件中还包括线程配置数据,因此,如图3所示,上述方法还包括以下步骤S31-S32:
步骤S31,读取线程配置数据,线程配置数据中包括每一个执行阶段的单次并行执行的线程数。
步骤S32,按照每一个执行阶段的单次并行执行的线程数,执行每一个执行阶段。
举例来说,线程配置如下:
<wokertype=“page”n_cpu=“4”process_num=“20”>
由上述线程配置数据可知,n_cpu的值为4,说明程序处理的并行数为4,process_num的值为20,说明当前执行阶段单次并行执行的线程数为20,因此,在程序运行时,按照预先配置好的线程配置数据,可同时并行执行20个线程的当前执行阶段。
需要说明的是,本实施例中所说的线程配置数据是按照执行网络爬虫任务的每一个执行阶段的执行部件的参数来配置的,执行部件的参数可以包括执行部件本身的复杂度或处理相应的执行阶段的速度等,例如,执行下载阶段的下载部件处理逻辑简单,处理速度较快,因此可配置下载部件单次并行执行的线程数较少,例如线程数为1;而执行抽取阶段的抽取部件逻辑比较复杂,处理速度较慢,因此可配置抽取部件单次并行执行的线程数较多,例如线程数为10。可见,本实施例的方案能够根据每个执行部件本身的参数来配置各自不同的线程数,且配置的线程数能够充分利用执行部件的性能,使得执行网络爬虫任务的处理器效率得以提高,从而提高网络爬虫的效率。
此外,网络爬虫任务的配置文件中还可以包括一些辅助信息,辅助信息是按照具体的网络爬虫任务的需要进行配置的。举例如下:
在下载某些网站的过程中,需要配置文件中包括cookie配置及代理配置,该配置如下:
<cookietype=“server”rule=http://yunzhisheng/cookieserver/ReciveCookiesServlet/>
上述配置中配置了一个cookie管理器,管理器通过向服务器请求的方式获取cookie,请求的网址在“rule”属性中。那么,在下载网站的过程中,即可根据上述配置来调用cookie。
对应于上述实施例中的网络爬虫方法,本发明还提供一种网络爬虫装置,用以执行上述网络爬虫方法。
图4为本发明实施例中一种网络爬虫装置的框图,如图4所示,该装置包括:
第一获取模块41,用于获取网络爬虫任务的配置文件,配置文件包括网络爬虫任务的每一个执行阶段的标识、每一个执行阶段的执行顺序及每一个执行阶段对应的配置参数;
确定模块42,用于根据每一个执行阶段的标识以及每一个执行阶段的执行顺序,确定网络爬虫任务的当前执行阶段;
第二获取模块43,用于获取当前执行阶段的输入数据,输入数据为当前执行阶段之前的上一个执行阶段的输出数据,输入数据或输出数据是通过预设的输入输出接口格式进行输入或输出的;
第一执行模块44,用于根据当前执行阶段对应的配置参数和输入数据执行当前执行阶段。
在一个实施例中,第二获取模块43获取的当前执行阶段的输入数据包括网络爬虫任务的配置文件和上一个执行阶段的执行结果数据。
在一个实施例中,如图5所示,上述装置还包括:
生成模块45,用于根据当前执行阶段对应的配置参数和输入数据执行当前执行阶段之后,生成包括当前执行阶段的执行结果数据的输出数据。
在一个实施例中,如图6所示,第一执行模块44包括:
对比子模块441,用于将输入数据中的配置参数的类型和当前执行阶段对应的配置参数的类型进行对比,得到当前执行阶段对应的配置参数中与输入数据中的配置参数类型不匹配的第一配置参数;
确定子模块442,用于确定将输入数据中的配置参数转换为第一配置参数的转换规则;
转换子模块443,用于根据转换规则对输入数据中的配置参数进行转换,得到当前执行阶段对应的配置参数;
执行子模块444,用于根据当前执行阶段对应的配置参数和输入数据执行当前执行阶段。
在一个实施例中,如图7所示,上述装置还包括:
读取模块46,用于读取配置文件中的线程配置数据,线程配置数据中包括每一个执行阶段的单次并行执行的线程数;
第二执行模块47,用于按照每一个执行阶段的单次并行执行的线程数,执行每一个执行阶段。
采用本发明实施例提供的装置,通过确定网络爬虫任务的当前执行阶段,并将上一个执行阶段的输出数据作为当前执行阶段的输入数据,且输入数据和输出数据都是通过预设的输入输出接口格式进行输入或输出的,使得每个执行阶段的输入输出接口格式唯一,从而使每个执行阶段的输出数据都可通过预设的输入输出接口格式作为任意一个执行阶段的输入数据,解除了网络爬虫任务中相邻执行阶段之间的耦合性,使每个执行阶段的执行更加模块化,提高了网络爬虫的效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种网络爬虫方法,其特征在于,包括:
获取网络爬虫任务的配置文件,所述配置文件包括所述网络爬虫任务的每一个执行阶段的标识、所述每一个执行阶段的执行顺序及所述每一个执行阶段对应的配置参数;
根据所述每一个执行阶段的标识以及所述每一个执行阶段的执行顺序,确定所述网络爬虫任务的当前执行阶段;
获取所述当前执行阶段的输入数据,所述输入数据为所述当前执行阶段之前的上一个执行阶段的输出数据,所述输入数据或所述输出数据是通过预设的输入输出接口格式进行输入或输出的;
根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段。
2.根据权利要求1所述的方法,其特征在于,所述当前执行阶段的输入数据包括所述网络爬虫任务的配置文件和所述上一个执行阶段的执行结果数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段之后,所述方法还包括:
生成包括所述当前执行阶段的执行结果数据的输出数据。
4.根据权利要求1所述的方法,其特征在于,所述根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段,包括:
将所述输入数据中的配置参数的类型和所述当前执行阶段对应的配置参数的类型进行对比,得到所述当前执行阶段对应的配置参数中与所述输入数据中的配置参数类型不匹配的第一配置参数;
确定将所述输入数据中的配置参数转换为所述第一配置参数的转换规则;
根据所述转换规则对所述输入数据中的配置参数进行转换,得到所述当前执行阶段对应的配置参数;
根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段。
5.根据权利要求1所述的方法,其特征在于,所述配置文件中包括线程配置数据;所述方法还包括:
读取所述线程配置数据,所述线程配置数据中包括每一个执行阶段的单次并行执行的线程数;
按照所述每一个执行阶段的单次并行执行的线程数,执行所述每一个执行阶段。
6.一种网络爬虫装置,其特征在于,包括:
第一获取模块,用于获取网络爬虫任务的配置文件,所述配置文件包括所述网络爬虫任务的每一个执行阶段的标识、所述每一个执行阶段的执行顺序及所述每一个执行阶段对应的配置参数;
确定模块,用于根据所述每一个执行阶段的标识以及所述每一个执行阶段的执行顺序,确定所述网络爬虫任务的当前执行阶段;
第二获取模块,用于获取所述当前执行阶段的输入数据,所述输入数据为所述当前执行阶段之前的上一个执行阶段的输出数据,所述输入数据或所述输出数据是通过预设的输入输出接口格式进行输入或输出的;
第一执行模块,用于根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段。
7.根据权利要求6所述的装置,其特征在于,所述第二获取模块获取的当前执行阶段的输入数据包括所述网络爬虫任务的配置文件和所述上一个执行阶段的执行结果数据。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
生成模块,用于根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段之后,生成包括所述当前执行阶段的执行结果数据的输出数据。
9.根据权利要求6所述的装置,其特征在于,所述第一执行模块包括:
对比子模块,用于将所述输入数据中的配置参数的类型和所述当前执行阶段对应的配置参数的类型进行对比,得到所述当前执行阶段对应的配置参数中与所述输入数据中的配置参数类型不匹配的第一配置参数;
确定子模块,用于确定将所述输入数据中的配置参数转换为所述第一配置参数的转换规则;
转换子模块,用于根据所述转换规则对所述输入数据中的配置参数进行转换,得到所述当前执行阶段对应的配置参数;
执行子模块,用于根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
读取模块,用于读取所述配置文件中的线程配置数据,所述线程配置数据中包括每一个执行阶段的单次并行执行的线程数;
第二执行模块,用于按照所述每一个执行阶段的单次并行执行的线程数,执行所述每一个执行阶段。
CN201510609537.2A 2015-09-22 2015-09-22 一种网络爬虫方法及装置 Active CN105260405B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510609537.2A CN105260405B (zh) 2015-09-22 2015-09-22 一种网络爬虫方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510609537.2A CN105260405B (zh) 2015-09-22 2015-09-22 一种网络爬虫方法及装置

Publications (2)

Publication Number Publication Date
CN105260405A true CN105260405A (zh) 2016-01-20
CN105260405B CN105260405B (zh) 2019-08-16

Family

ID=55100097

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510609537.2A Active CN105260405B (zh) 2015-09-22 2015-09-22 一种网络爬虫方法及装置

Country Status (1)

Country Link
CN (1) CN105260405B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107784036A (zh) * 2016-08-31 2018-03-09 北京国双科技有限公司 网络爬虫系统和基于网络爬虫系统的数据处理方法
CN110007967A (zh) * 2017-12-29 2019-07-12 杭州海康威视数字技术股份有限公司 一种基于流式框架的数据处理方法、装置及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222109A (zh) * 2011-06-28 2011-10-19 用友软件股份有限公司 数据处理装置和数据处理方法
US20140129277A1 (en) * 2008-09-30 2014-05-08 Textura Corporation Field management and mobile inspection
CN104375993A (zh) * 2013-08-12 2015-02-25 阿里巴巴集团控股有限公司 一种数据处理的方法及装置
CN104376063A (zh) * 2014-11-11 2015-02-25 南京邮电大学 基于分类管理的多线程网络爬虫方法和信息实时更新系统
WO2015111057A1 (en) * 2014-01-27 2015-07-30 Tavor Sraya A decision-support system and method for project management office
CN104850638A (zh) * 2015-05-25 2015-08-19 广州精点计算机科技有限公司 Etl过程并行决策方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140129277A1 (en) * 2008-09-30 2014-05-08 Textura Corporation Field management and mobile inspection
CN102222109A (zh) * 2011-06-28 2011-10-19 用友软件股份有限公司 数据处理装置和数据处理方法
CN104375993A (zh) * 2013-08-12 2015-02-25 阿里巴巴集团控股有限公司 一种数据处理的方法及装置
WO2015111057A1 (en) * 2014-01-27 2015-07-30 Tavor Sraya A decision-support system and method for project management office
CN104376063A (zh) * 2014-11-11 2015-02-25 南京邮电大学 基于分类管理的多线程网络爬虫方法和信息实时更新系统
CN104850638A (zh) * 2015-05-25 2015-08-19 广州精点计算机科技有限公司 Etl过程并行决策方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107784036A (zh) * 2016-08-31 2018-03-09 北京国双科技有限公司 网络爬虫系统和基于网络爬虫系统的数据处理方法
CN110007967A (zh) * 2017-12-29 2019-07-12 杭州海康威视数字技术股份有限公司 一种基于流式框架的数据处理方法、装置及设备
CN110007967B (zh) * 2017-12-29 2022-05-06 杭州海康威视数字技术股份有限公司 一种基于流式框架的数据处理方法、装置及设备

Also Published As

Publication number Publication date
CN105260405B (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
CN109614569B (zh) 页面渲染方法、装置及智能终端
CN111273898B (zh) web前端代码自动化构建方法、系统及存储介质
US9811321B1 (en) Script compilation
CN106547527B (zh) 一种JavaScript文件构建方法及装置
US9026904B2 (en) Automatic modification of cascading style sheets for isolation and coexistence
CN102111331B (zh) 一种基于hash表实现的带掩码五元组规则的匹配方法
CN111049889B (zh) 一种静态资源上传方法、装置、集成服务器和系统
CN110493342B (zh) 文件传输方法、装置、电子设备及可读存储介质
CN104182234A (zh) 一种业务处理方法和业务系统
CN112416964A (zh) 一种数据处理的方法、装置、系统、计算机设备及计算机可读存储介质
CN113076710A (zh) 时钟信号全局同步及分割验证方法、装置、电子设备、存储介质
CN112000429A (zh) 一种云平台管理平台的连接跟踪删除方法、装置及设备
CN105260405A (zh) 一种网络爬虫方法及装置
CN104778252A (zh) 索引的存储方法和装置
CN104461548A (zh) 代码片段的添加方法和装置
US11176223B1 (en) Page rendering by an intermediary system that uses a truncated library
CN113835737A (zh) 一种前端项目添加权限的方法及系统
CN117008920A (zh) 引擎系统、请求处理方法、装置、计算机设备及存储介质
CN116302328A (zh) 智能合约数据处理方法和系统
CN110019497B (zh) 一种数据读取方法及装置
US20210311843A1 (en) System verification program generation device, system verification program generation method, and recording medium storing system verification program generation program
CN112579472B (zh) 测试用例的自动生成方法及装置
DesLauriers et al. Abstractions of abstractions: Metadata to infrastructure-as-code
CN113326407A (zh) 一种数据处理方法及装置
US10120968B1 (en) System and method for hierarchical library searching

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: No. 101, 1st Floor, 1st Building, Xisanqi Building Materials City, Haidian District, Beijing, 100000

Patentee after: Yunzhisheng Intelligent Technology Co.,Ltd.

Address before: 100191 Beijing, Huayuan Road, Haidian District No. 2 peony technology building, five floor, A503

Patentee before: BEIJING UNISOUND INFORMATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200415

Address after: No. 101, 1st Floor, 1st Building, Xisanqi Building Materials City, Haidian District, Beijing, 100000

Co-patentee after: Xiamen yunzhixin Intelligent Technology Co.,Ltd.

Patentee after: Yunzhisheng Intelligent Technology Co.,Ltd.

Address before: No. 101, 1st Floor, 1st Building, Xisanqi Building Materials City, Haidian District, Beijing, 100000

Patentee before: Yunzhisheng Intelligent Technology Co.,Ltd.