摘要:随着近年来互联网的快速发展,互联网上的数据越来越多,数据的产生和传输也越来越快。如何从浩如烟海的数据中取得需要的数据,获取最及时的数据,从而挖掘数据最大的价值。成了很多互联网企业面临的一大问题。通过购买方式获得数据成本太高,而且数据的实效性也无法保证。因此网络爬虫成了很多公司的选择。设计一个效率高,准确性强的爬虫系统是一项很有意义的工作。
本文进行了此次毕业设计的爬虫系统的开发背景及系统分析、设计和实现的流程。完成了爬虫系统使用的主要技术Scrapy爬虫框架,Redis数据库的介绍与研究。深入研究了Scrapy框架的内部原理以及核心源码。同时结合了具体的案例,分析了爬虫系统的性能。
关键词:数据;爬虫系统;Scrapy框架;Redis数据库
目录
摘要
Abstract
1 绪 论-1
1.1 开发背景及意义-1
1.2 论文的主要研究内容和工作-2
1.2.1 确定需求和目标-2
1.2.2 可行性分析-2
1.2.3 具体技术的研究-2
1.2.4 技术实施-2
1.3 论文的组织结构-3
2 定向爬虫相关研究阐述-3
2.1 定向爬虫的系统结构和关键技术-3
2.2 定向爬虫的搜索策略-5
2.2.1 基于内容评价的搜索策略-5
2.2.2 基于分类器预测评价的搜索策略-6
2.3 朴素贝叶斯文本分类算法-7
3 相关技术介绍-8
3.1 Redis数据库-8
3.1.1 Redis数据库介绍-8
3.1.2 Redis数据库在爬虫系统中的应用-9
3.2 Mongo数据库-9
3.3 Scrapy-Redis原理介绍-10
3.4 Scrapy框架-11
3.4.1 Scrapy框架介绍-11
3.4.2 Scrapy框架数据流-12
3.4.3 Scrapy组件介绍-13
4 Scrapy源码剖析-14
4.1 初始化项目配置-14
4.2 核心组件初始化-17
4.3 核心流程-33
5 分布式爬虫系统的设计与实现-52
5.1 系统总体架构设计-52
5.2 分布式设计-53
5.3 动态网页抓取设计-54
5.4 爬虫防反爬设计-55
5.5 存储模块设计-56
6 案例分析--房地产数据分析项目-57
6.1 项目结构-58
6.2 抓取需求分析-58
6.3 分析链家网站数据结构-59
6.3.1 小区详情页分析-60
6.3.2 二手房出售详情页分析-61
6.3.3 成交记录详情页分析-62
6.4 编写Spider模块-63
6.5 编写Parser模块-64
6.6 性能分析与测试-65
7 总结与展望-69
7.1 总结-69
7.2 展望-69
参考文献-70
致 谢-72