1.基于MapReduce算法的web数据采集方法,其特征在于,该方法包括如下步骤:接收爬虫采集节点传送的网页数据经协议封装而成的数据包;
解析所述数据包,对解析后的数据包进行Map操作构建哈希表;
向文件导出节点发送所述哈希表,以便于文件导出节点对所述哈希表进行Reduce操作获得同一网站的汇总数据集合并将获得的汇总数据集合导出到文件中;
所述数据包包括数据头和数据体;
所述数据头包括魔数区,任务编号,网站类型,子网站类型和数据包长度;
所述数据体包括若干Item数据,所述Item数据由所述网页数据按字段名称,字段长度和字段数据的格式封装而成;
对解析后的数据包进行Map操作构建哈希表的方法包括如下步骤:解析数据头获得任务编号、网站类型、子网站类型、数据包长度;
解析数据体中的Item数据,并将Item数据转变为key‑value数据结构;
将所有的Item数据对应的key‑value数据结构组装成Item哈希表;
根据获取的网站类型、子网站类型和Item哈希表构建Task哈希表;
根据获取的任务编号和Task哈希表创建Event消息体。
2.根据权利要求1所述的基于MapReduce算法的web数据采集方法,其特征在于,所述Item数据结构表示为:<字段名称,字段长度,字段数据>;
所述Item哈希表结构表示为:
<<
所述Task哈希表结构表示为:
其中,Task_key为网站类型和子网站类型的组合,Task_value为Item哈希表;
所述Event消息体结构为:
3.根据权利要求2所述的基于MapReduce算法的web数据采集方法,其特征在于,对所述哈希表进行Reduce操作获得同一网站的汇总数据集合的方法包括如下步骤:文件导出节点解析Event消息体获取所对应的Task哈希表,并判断不同Event消息体所对应的Task哈希表的主键信息是否一致:若一致,则合并主键信息相一致的Task哈希表并删除Task哈希表中重复的Item数据,形成相同主键信息的汇总数据集合;
若不一致,则不进行合并处理。
4.一种web数据采集系统,其特征在于,所述采集系统包括多个爬虫采集节点,每个所述爬虫采集节点信号连接多个数据解码节点,每个所述数据解码节点信号连接多个文件导出节点;
所述爬虫采集节点,用于对获取的网页数据进行协议封装形成数据包,并将所述数据包传送给所述数据解码节点;
所述数据解码节点,用于解析数据包并对解析后的数据包进行Map操作构建哈希表,并将所述哈希表传送给文件导出节点;
所述文件导出节点,用于对所述哈希表进行Reduce操作获得同一网站的汇总数据集合,并将获得的汇总数据集合导出到文件中;
所述数据包包括数据头和数据体;
所述数据头包括魔数区,任务编号,网站类型,子网站类型和数据包长度;
所述数据体包括若干Item数据,所述Item数据由所述网页数据按字段名称,字段长度和字段数据的格式封装而成;
对解析后的数据包进行Map操作构建哈希表的方法包括如下步骤:解析数据头获得任务编号、网站类型、子网站类型、数据包长度;
解析数据体中的Item数据,并将Item数据转变为key‑value数据结构;
将所有的Item数据对应的key‑value数据结构组装成Item哈希表;
根据获取的网站类型、子网站类型和Item哈希表构建Task哈希表;
根据获取的任务编号和Task哈希表创建Event消息体。
5.根据权利要求4所述的web数据采集系统,其特征在于,所述爬虫采集节点包括Spider子模块和Pipeline子模块;
所述Spider子模块,用于读取指定配置文件,获得指定网站的目标网站列表信息,并根据所述目标站列表信息创建相对应的任务编号,所述目标网站列表信息包括网站URL地址、网站类型和子网站类型;以及向指定网站发起HTTP请求,获得并解析HTML网页获得指定网页数据;
所述Pipeline子模块,用于根据所述目标网站列表信息和所述指定网页数据构建包括数据体和数据头的数据包。
6.根据权利要求5所述的web数据采集系统,其特征在于,所述数据解码节点包括Decoder解码器子模块和Handler数据处理子模块;
所述Decoder解码器子模块,用于解析所述数据包,并将获得的数据体和数据头保存至缓冲区;
所述Handler数据处理子模块,用于解析缓冲区的数据体和数据头,并根据解析结果依次构建包含Item哈希表和Task哈希表的Event消息体。
7.根据权利要求6所述的web数据采集系统,其特征在于,所述文件导出节点包括shuffle子模块和文件管理子模块;
所述shuffle子模块,用于接收和解析Event消息体获取所对应的Task哈希表,并判断不同Event消息体所对应的Task哈希表的主键信息是否一致:若一致,则合并主键信息相一致的Task哈希表并删除Task哈希表中重复的Item数据,形成相同主键信息的汇总数据集合;若不一致,则不进行合并处理;
所述文件管理子模块,用于将汇总数据集合中每一个Item数据转换为“key:value”格式的字符串,并保存到文件中。
8.根据权利要求7所述的web数据采集系统,其特征在于,所述Handler数据处理子模块将所述Event消息体发送至EventBus队列中,所述shuffle子模块监听所述EventBus队列并获得Event消息体。
9.一种web数据采集系统,其特征在于,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行根据权利要求1~3任一项所述方法的步骤。
10.计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~3任一项所述方法的步骤。