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