基于Hadoop的分布式网络爬虫系统的设计与实现
摘要 | 第4-5页 |
Abstract | 第5页 |
1 绪论 | 第11-15页 |
1.1 课题研究背景和意义 | 第11-12页 |
1.2 国内外研究现状 | 第12-13页 |
1.3 主要研究内容 | 第13页 |
1.4 论文结构安排 | 第13-15页 |
2 相关技术研究 | 第15-28页 |
2.1 Hadoop分布式平台技术 | 第15-19页 |
2.1.1 分布式文件系统HDFS | 第16-17页 |
2.1.2 MapReduce计算框架 | 第17-19页 |
2.2 Hbase数据库 | 第19-20页 |
2.3 Storm实时处理平台 | 第20页 |
2.4 Kafka消息队列 | 第20-22页 |
2.5 网络爬虫 | 第22-28页 |
2.5.1 网络爬虫基本原理 | 第22页 |
2.5.2 页面搜索策略 | 第22-23页 |
2.5.3 网络爬虫的物理架构 | 第23-24页 |
2.5.4 DNS缓存 | 第24-25页 |
2.5.5 爬虫身份标识 | 第25页 |
2.5.6 Robots协议 | 第25-26页 |
2.5.7 解析Html和非Html文档 | 第26页 |
2.5.8 OPIC算法 | 第26-28页 |
3 系统需求分析 | 第28-36页 |
3.1 项目总体目标 | 第28页 |
3.2 功能需求 | 第28-34页 |
3.2.1 需求描述 | 第29页 |
3.2.2 功能分类 | 第29-30页 |
3.2.3 确定系统范围和边界 | 第30页 |
3.2.4 确定参与者 | 第30页 |
3.2.5 构建用例 | 第30-34页 |
3.3 性能需求 | 第34-36页 |
4 系统概要设计 | 第36-48页 |
4.1 网络爬虫系统架构设计 | 第36-40页 |
4.1.1 网络爬虫运行流程分析 | 第36-38页 |
4.1.2 分布式网络爬虫的物理架构设计 | 第38-39页 |
4.1.3 分布式网络爬虫的逻辑架构设计 | 第39-40页 |
4.2 分布式网络爬虫模块设计 | 第40-41页 |
4.3 关键技术设计 | 第41-44页 |
4.3.1 URL规范化 | 第41页 |
4.3.2 爬虫任务分配策略 | 第41-42页 |
4.3.3 平衡礼貌策略 | 第42页 |
4.3.4 重新访问策略 | 第42-43页 |
4.3.5 页面去重 | 第43-44页 |
4.4 分布式网络爬虫的数据库设计 | 第44-48页 |
4.4.1 分布式网络爬虫的数据库概念设计 | 第44页 |
4.4.2 分布式网络爬虫的数据库表结构设计 | 第44-48页 |
5 系统详细设计和实现 | 第48-62页 |
5.1 InitializePhase模块 | 第48-50页 |
5.2 GeneratorPhase模块 | 第50-53页 |
5.3 FetcherPhase模块 | 第53-55页 |
5.4 ParserPhase模块 | 第55-57页 |
5.5 UpdatePhase模块 | 第57-60页 |
5.6 CalculateKPI模块 | 第60-62页 |
6 系统测试 | 第62-68页 |
6.1 测试环境 | 第62-63页 |
6.1.1 系统软硬件环境 | 第62-63页 |
6.1.2 测试环境搭建 | 第63页 |
6.2 测试用例 | 第63-65页 |
6.3 测试结果 | 第65-68页 |
7 总结与展望 | 第68-70页 |
7.1 论文总结 | 第68页 |
7.2 研究展望 | 第68-70页 |
参考文献 | 第70-72页 |
致谢 | 第72-73页 |
个人简历 | 第73页 |