您的位置:首页 > 编程语言 > Python开发

不用Python,怎么实现大数据爬虫项目?

2016-11-15 14:23 453 查看
《中国新歌声》、《跑男》、《喜剧总动员》、《笑傲江湖》……现如今,各种综艺节目竞争激烈。哪个节目更受观众欢迎?节目中的“笑点”和 “尿点”又藏在哪儿?歌华有线的“北京大样本收视数据研究中心”给出了答案。这家刚刚成立不久的机构,掌握着最热门的“大数据”计算模式,如今正充当起各个电视节目的幕后“军师”。

掌握着用户收视数据的现在不仅仅是歌华,还有我们所熟悉的小米(盒子)、乐视(盒子)、华为(盒子)等等,还有我们不太熟悉的新科、百视通、创思奇等等,这些机构或者公司通过硬件设备电视机顶盒掌握着每个用户的收视数据。

虽然传统的公司或者机构通过电视机顶盒掌握着相当一部分用户的收视数据,但是随着互联网视频网站的崛起,越来越多的用户选择通过视频网站收看我们喜欢的节目,而且这个比重逐年增加,可以说未来互联网视频网站的用户与传统的机顶盒用户旗鼓相当,甚至超越传统机顶盒用户。

作为一般的互联网公司或者个人,如果我们有这个业务需求获取用户的收视数据,那我们该如何做呢?

一般有两种途径:一种是跟机顶盒厂商合作拿到用户数据,另一种是跟视频网站合作拿到用户数据。

第一种方式成本比较高,而且现在机顶盒厂商也比较多,很难获取比较全面的数据,第二种方式同样成本比较高,视频网站也众多,但是互联网视频网站的数据一般暴露给用户,所以我们可以通过爬虫的方式,来获取各大视频网站的用户数据,更经济、更快捷。

作为一个大数据爱好者,希望通过Java语言实现网络爬虫,项目涵盖爬虫项目完整流程,包括数据爬虫、全文检索、数据可视化、爬虫项目监控、爬虫项目维护等等。同时,详细介绍了如何解决爬虫项目中经常遇到的棘手问题,包括破解网站反爬策略、网站模板定期变更、网站频繁访问IP被封等等问题。

参考:http://www.dajiangtai.com/community/18096.do?origin=csdn-geek&blog

涉及的技术包括,Java、HttpClient、Redis、Solr、HBase、Zookeeper、HighChart、HTMLEmail。

笔者将详细的拆解步骤做了整理:

一、项目背景

1、了解传统广电收视率项目背景

2、用户数据有哪些价值点

3、哪些机构掌握这些数据

4、爬虫目标:互联网各大视频网站

二、项目总体需求

1、多维度统计:总播放指数、每日播放增量、评论数、收藏数、赞、踩

2、数据可视化:节目收视排行榜、多维度指标趋势图

三、难点分析

1、网站采取反爬策略

2、网站模板定期变动

3、网站URL抓取失败

4、网站频繁抓取IP被封

四、系统架构设计

1、总体架构解析

2、数据流向

3、功能模块划分

4、各个模块详细解读

五、技术选型

1、数据采集层

2、数据存储层

3、数据处理层

4、数据展示层

六、部署方案

1、爬虫项目:分布式集群

2、爬虫定时项目:一台服务器

3、爬虫项目监控:一台服务器

4、爬虫可视化:多台服务器

5、Hbase数据库:分布式集群

6、Redis数据库:分布式集群

7、Solr 全文检索:分布式集群

8、Zookeeper 监控:分布式集群

9、Solr 建立索引:一台服务器

10、邮件提醒:一台服务器

七、爬虫代码详尽实现

1、下载、解析视频网站详情页面url,提取关键字段数据

2、抽取视频网站解析规则模板,优化解析代码

3、打通数据爬虫的下载、解析、存储流程

4、采用Hbase存储爬虫数据,详解Hbase宽表和窄表设计以及爬虫项目表的详细设计

5、解析视频网站所有分页url并优化解析实现类

6、使用Queue队列存储视频网站所有url,实现视频网站url循环抓取

7、采用高、低优先级队列循环抓取视频网站url

8、采用Redis数据库实现url抓取优先级,并支持分布式爬虫

9、采用多线程爬虫,加快爬虫效率

10、定时启动爬虫项目

11、完善爬虫项目、补充抓取关键字段数据

八、全文检索

1、Lucene、Solr、ElasticSearch简介

2、全文检索过程:索引创建和搜索索引

3、解决全文检索的核心问题

4、Solr+Hbase组合提升检索效率

5、Solr 配置详解

6、Solr 安装部署

7、Solr 建立索引

8、Solr 检索视频网站数据

九、数据可视化

1、采用SpringMVC框架编写爬虫Web项目

2、编写Hbase工具类查询Hbase数据

3、编写Solr工具类检索爬虫数据

4、采用Freemarker或者jsp展示页面

5、采用Highcharts插件展示收视指数曲线图

6、打通爬虫整个项目流程,实时查看收视排行榜以及收视指数曲线图

十、项目优化一

1、设置合理的抓取时间间隔,模拟正常用户访问,降低IP被封概率

2、采用Redis 动态IP库,随机获取IP,随机抓取不同网站数据,降低同一IP对统一网站的访问频率

3、实现分布式爬虫,提高爬虫效率

十一、项目优化二

1、Ganglia、Zookeeper简介

2、详解Zookeeper特性监控爬虫项目

3、完善爬虫项目注册Zookeeper集群

4、编写Watcher监视器监控爬虫项目生命周期

5、集群监控的整体联调

十二、项目优化三

1、监控器监控爬虫项目异常,异常数据插入数据库

2、编写邮件Mail项目扫描爬虫项目异常信息,通知运维人员

3、编写定时器定时执行Mail项目

参考:http://www.dajiangtai.com/community/18096.do?origin=csdn-geek&blog

如需转载,请注明出处!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  大讲台 大数据 hadoop