写在前面:
1. 整个爬虫系统,简介:采用Thrift,Netty作为模块通信和网络通信,使用Zookeeper实现分布式管理,底层存储使用HBase。
2. 动静结合爬取模块实现方式。
3. 智能提取算法,相似性SimHash算法,PageRank改进算法等,实现爬取策略,爬取调度。
4. 可扩展性,a.对于主题爬虫(垂直爬虫),站点爬虫灵活充分转变。b. 爬虫性能水平扩展。
5. 爬取状态监控。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
架构与模块
整个系统架构分为至少3个以上的模块,包括调度中心,爬取模块,信息提取模块,种子管理,监控模块。其中尽可能保证各模块之间异步通信。
保证各个模块之间最小单元化,最小功能化。
1. 调度中心
其中调度中心,负责种子投递,监控种子状态,包括延时处理,状态标记等,维护系统爬取效率,网络通信,模块通信等各方面。
实现thrift相关接口。
2. 爬取模块
实现爬取任务,作为独立模块,基于约定实现thrift接口
实现动静网页的爬取,基于Http请求,Webkit/HttpUnit/selumn第三方渲染方式实现页面下载。主要处理各种网络问题,包括cookie,bot协议,封闭网络等。
3. 信息提取
同2.
主要目的在于制定爬取策略。独立于其他模块
a. 可以基于xpath等信息,提取页面信息
b. 基于智能算法提取页面信息
c. 基于pageRange提取种子信息,实现抓取策略
以上3个模块为主要模块,整体依据thrift接口实现模块通信。