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