一、项目背景
1、了解传统广电收视率项目背景
2、用户数据有哪些价值点
3、哪些机构掌握这些数据
4、爬虫目标:互联网各大视频网站
) n8 Q% S( H1 b0 L A" A& T+ R二、项目总体需求
1、多维度统计:总播放指数、每日播放增量、评论数、收藏数、赞、踩
2、数据可视化:节目收视排行榜、多维度指标趋势图
7 F+ F, W+ y( S
三、难点分析
1、网站采取反爬策略
2、网站模板定期变动
3、网站URL抓取失败
4、网站频繁抓取IP被封
/ [7 d- L% ^- ?四、系统架构设计
1、总体架构解析
2、数据流向
3、功能模块划分
4、各个模块详细解读
+ W+ D- e! {% E& X2 h9 j) m
五、技术选型
1、数据采集层
2、数据存储层
3、数据处理层
4、数据展示层
3 k; z7 ^) N: Y- k& ^! V
六、部署方案
1、爬虫项目:分布式集群
2、爬虫定时项目:一台服务器
3、爬虫项目监控:一台服务器
4、爬虫可视化:多台服务器
5、Hbase数据库:分布式集群
6、Redis数据库:分布式集群
7、Solr 全文检索:分布式集群
8、Zookeeper 监控:分布式集群
9、Solr 建立索引:一台服务器
10、邮件提醒:一台服务器
8 O2 O" Z& \- @) I# h0 R ^
七、爬虫代码详尽实现
1、下载、解析视频网站详情页面url,提取关键字段数据
2、抽取视频网站解析规则模板,优化解析代码
3、打通数据爬虫的下载、解析、存储流程
4、采用Hbase存储爬虫数据,详解Hbase宽表和窄表设计以及爬虫项目表的详细设计,包含rowKey设计、列簇设计、历史版本
5、解析视频网站所有分页url并优化解析实现类
6、使用Queue队列存储视频网站所有url,实现视频网站url循环抓取
7、采用高、低优先级队列循环抓取视频网站url
8、采用Redis数据库实现url抓取优先级,并支持分布式爬虫
9、采用多线程爬虫,加快爬虫效率
10、定时启动爬虫项目
11、完善爬虫项目、补充抓取关键字段数据
7 v C$ }6 y, `3 h5 ~& ~八、全文检索
1、Lucene、Solr、ElasticSearch简介
2、全文检索过程:索引创建和搜索索引
3、解决全文检索的核心问题
4、Solr+Hbase组合提升检索效率
5、Solr 配置详解
6、Solr 安装部署
7、Solr 建立索引
8、Solr 检索视频网站数据
, D5 N2 U' {7 B: r% v2 k8 x
九、数据可视化
1、采用SpringMVC框架编写爬虫Web项目
2、编写Hbase工具类查询Hbase数据
3、编写Solr工具类检索爬虫数据
4、采用Freemarker或者jsp展示页面
5、采用Highcharts插件展示收视指数曲线图
6、打通爬虫整个项目流程,实时查看收视排行榜以及收视指数曲线图
" a+ f! i& X! U# l+ e4 v$ c
十、项目优化一
1、设置合理的抓取时间间隔,模拟正常用户访问,降低IP被封概率
2、采用Redis 动态IP库,随机获取IP,随机抓取不同网站数据,降低同一IP对统一网站的访问频率
3、实现分布式爬虫,提高爬虫效率
9 o) q0 J* ~/ i5 Q
十一、项目优化二
1、Ganglia、Zookeeper简介
2、详解Zookeeper特性监控爬虫项目
3、完善爬虫项目注册Zookeeper集群
4、编写Watcher监视器监控爬虫项目生命周期
5、集群监控的整体联调
4 F' m1 T' z! ]& D5 f z4 x
十二、项目优化三
1、监控器监控爬虫项目异常,异常数据插入数据库
2、编写邮件Mail项目扫描爬虫项目异常信息,通知运维人员
3、编写定时器定时执行Mail项目
8 F/ ]+ V; _, M