一种网络爬虫方法及装置的制造方法
【技术领域】
[0001] 本发明涉及互联网技术领域,尤其涉及一种网络爬虫方法及装置。
【背景技术】
[0002] 爬虫作为一种自动获取网页内容的程序,是搜索引擎的重要组成部分。网络爬虫, 是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。具体的爬虫任务一般分 为下载、抽取、清洗、存储四个阶段,且每个阶段都有各自的输入输出,也就是说,不同阶段 的输入或输出的内容、格式均有所不同,从而导致爬虫的过程不可分割,必须按照既定的阶 段顺序执行,相邻两个阶段之间的耦合性较大,且网络爬虫的代码重用性低。
【发明内容】
[0003] 本发明实施例提供一种网络爬虫方法及装置,用于解除网络爬虫任务中相邻执行 阶段之间的耦合性,从而实现网络爬虫的每个执行阶段的模块化。
[0004] 一种网络爬虫方法,包括以下步骤:
[0005] 获取网络爬虫任务的配置文件,所述配置文件包括所述网络爬虫任务的每一个执 行阶段的标识、所述每一个执行阶段的执行顺序及所述每一个执行阶段对应的配置参数;
[0006] 根据所述每一个执行阶段的标识以及所述每一个执行阶段的执行顺序,确定所述 网络爬虫的当前执行阶段;
[0007] 获取所述当前执行阶段的输入数据,所述输入数据为所述当前执行阶段之前的上 一个执行阶段的输出数据,所述输入数据或所述输出数据是通过预设的输入输出接口格式 进行输入或输出的;
[0008] 根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段。
[0009] 本发明实施例的一些有益效果可以包括:
[0010] 上述技术方案,通过确定网络爬虫任务的当前执行阶段,并将上一个执行阶段的 输出数据作为当前执行阶段的输入数据,且输入数据和输出数据都是通过预设的输入输出 接口格式进行输入或输出的,使得每个执行阶段的输入输出接口格式唯一,从而使每个执 行阶段的输出数据都可通过预设的输入输出接口格式作为任意一个执行阶段的输入数据, 解除了网络爬虫任务中相邻执行阶段之间的耦合性,使每个执行阶段的执行更加模块化, 提尚了网络爬虫的效率。
[0011] 在一个实施例中,所述当前执行阶段的输入数据包括所述网络爬虫任务的配置文 件和所述上一个执行阶段的执行结果数据。
[0012] 该实施例使得当前执行阶段能够根据输入数据中的配置文件以及上一个执行阶 段的执行结果数据来执行,从而确保上一个执行阶段的输出数据能够作为当前执行阶段的 输入数据传递给当前执行阶段,以提高网络爬虫的效率。
[0013] 在一个实施例中,所述根据所述当前执行阶段对应的配置参数和所述输入数据执 行所述当前执行阶段之后,所述方法还包括:
[0014] 生成包括所述当前执行阶段的执行结果数据的输出数据。
[0015] 该实施例中,通过生成包括当前执行阶段的执行结果数据的输出数据,从而使得 当前执行阶段的输出数据能够作为下一个执行阶段的输入数据传递给下一个执行阶段,并 且下一个执行阶段能够利用输入数据中当前执行阶段的执行结果来执行,从而提高网络爬 虫的效率。
[0016] 在一个实施例中,所述根据所述当前执行阶段对应的配置参数和所述输入数据执 行所述当前执行阶段,包括:
[0017] 将所述输入数据中的配置参数的类型和所述当前执行阶段对应的配置参数的类 型进行对比,得到所述当前执行阶段对应的配置参数中与所述输入数据中的配置参数类型 不匹配的第一配置参数;
[0018] 确定将所述输入数据中的配置参数转换为所述第一配置参数的转换规则;
[0019] 根据所述转换规则对所述输入数据中的配置参数进行转换,得到所述当前执行阶 段对应的配置参数;
[0020] 根据所述当前执行阶段对应的配置参数和所述输入数据执行所述当前执行阶段。
[0021] 该实施例中,通过将输入数据中与当前执行阶段对应的配置参数类型不相匹配的 配置参数进行转换,使得输入数据中的配置参数类型能够匹配当前执行阶段对应的配置参 数类型,从而使每个执行阶段的输出数据都可作为任意一个执行阶段的输入数据,解除了 网络爬虫任务中相邻执行阶段之间的耦合性,使每个执行阶段的执行更加模块化,提高了 网络爬虫的效率。
[0022] 在一个实施例中,所述配置文件中包括线程配置数据;所述方法还包括:
[0023] 读取所述线程配置数据,所述线程配置数据中包括每一个执行阶段的单次并行执 行的线程数;
[0024] 按照所述每一个执行阶段的单次并行执行的线程数,执行所述每一个执行阶段。
[0025] 该实施例中,通过按照每一个执行阶段的单次并行执行的线程数来执行每一个执 行阶段,从而能够高效地执行网络爬虫任务的每一个执行阶段,提高网络爬虫的效率。
[0026] -种网络爬虫装置,包括:
[0027] 第一获取模块,用于获取网络爬虫任务的配置文件,所述配置文件包括所述网络 爬虫任务的每一个执行阶段的标识、所述每一个执行阶段的执行顺序及所述每一个执行阶 段对应的配置参数;
[0028] 确定模块,用于根据所述每一个执行阶段的标识以及所述每一个执行阶段的执行 顺序,确定所述网络爬虫任务的当前执行阶段;
[0029] 第二获取模块,用于获取所述当前执行阶段的输入数据,所述输入数据为所述当 前执行阶段之前的上一个执行阶段的输出数据,所述输入数据或所述输出数据是通过预设 的输入输出接口格式进行输入或输出的;
[0030] 第一执行模块,用于根据所述当前执行阶段对应的配置参数和所述输入数据执行 所述当前执行阶段。
[0031] 在一个实施例中,所述第二获取模块获取的当前执行阶段的输入数据包括所述网 络爬虫任务的配置文件和所述上一个执行阶段的执行结果数据。
[0032] 在一个实施例中,所述装置还包括:
[0033] 生成模块,用于根据所述当前执行阶段对应的配置参数和所述输入数据执行所述 当前执行阶段之后,生成包括所述当前执行阶段的执行结果数据的输出数据。
[0034] 在一个实施例中,所述第一执行模块包括:
[0035] 对比子模块,用于将所述输入数据中的配置参数的类型和所述当前执行阶段对应 的配置参数的类型进行对比,得到所述当前执行阶段对应的配置参数中与所述输入数据中 的配置参数类型不匹配的第一配置参数;
[0036] 确定子模块,用于确定将所述输入数据中的配置参数转换为所述第一配置参数的 转换规则;
[0037] 转换子模块,用于根据所述转换规则对所述输入数据中的配置参数进行转换,得 到所述当前执行阶段对应的配置参数;
[0038] 执行子模块,用于根据所述当前执行阶段对应的配置参数和所述输入数据执行所 述当前执行阶段。
[0039] 在一个实施例中,所述装置还包括:
[0040] 读取模块,用于读取所述配置文件中的线程配置数据,所述线程配置数据中包括 每一个执行阶段的单次并行执行的线程数;
[0041] 第二执行模块,用于按照所述每一个执行阶段的单次并行执行的线程数,执行所 述每一个执行阶段。
[0042] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0043] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【附图说明】