按照组长大人的要求,学习了一下Nutch爬虫的工作原理,与大家分享~~~
1. 背景
Nutch是Java编写的分布式搜索引擎。是由Doug Cutting和Mike Cafarella发起的开源项目,由于发起者的特殊背景,Nutch采用了Lucene做倒排索引和检索,使用Hadoop提供分布式的存储功能,保存爬行的URL和网页内容。
2. Nutch的框架
一个典型的网络信息检索系统的系统架构由信息收集、信息处理和查询服务三个模块组成。从具体运行方式上说,系统根据站点/网页的URL信 息和网页之间的链接关系,利用网络爬虫在互联网上收集数据;收集的数据分别通过链接信息分析器和文本信息分析器处理,保存在链接数据库和文本索引数据库中,同时,网页质量评估器依据网页的链接关系和页面结构特征对页面质量进行评估,并将评估的结果保存在索引数据库中;查询服务器负责与用户的交互,它根据 用户的检索需求,从索引数据库中读取对应的索引,并综合考虑查询相关性与页面质量评估结果之间的关系,给出查询结果列表反馈给用户。
Nutch的框架大致包括以下三个组成部分
- 网络爬虫:发现并下载网页
- WebDB:自定义的数据库存储了已知的URL和已经下载的网页内容。
- 索引器:分析页面并建立关键词索引
图:Nutch的体系结构结构
![clip_image002[6] clip_image002[6]](https://p-blog.csdn.net/images/p_blog_csdn_net/luciaqin/602858/o_clip_image002%5B6%5D_thumb_633908927041871250.gif)
今天先说到这里,明天继续~