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