第七周总结

   这周简单学习了一下Nutch爬取的内容。

简介

Apache的子项目之一,属于Lucene项目下的子项目。
Nutch是一个类似Google通用搜索引擎的解决方案,基于Hadoop任务的分布式处理模型保证了系统的性能,类似Eclipse的插件机制保证了系统的可客户化,而且很容易集成到自己的应用之中。 
总 体上Nutch可以分为2个部分:抓取部分和搜索部分。抓取程序抓取页面并把抓取回来的数据做成反向索引,搜索程序则对反向索引搜索回答用户的请求。抓取 程序和搜索程序的接口是索引,两者都使用索引中的字段。抓取程序和搜索程序可以分别位于不同的机器上,下面详细介绍一下抓取部分。

抓取过程

      
    抓取是一个循环的过程:抓取工具从WebDB中生成了一个 fetchlist 集合;抓取工具根据fetchlist从网络上下载网页内容;解析工具发现的新链接更新WebDB;然后再生成新的fetchlist;周而复始。这个抓 取循环在nutch中经常指: generate/fetch/parse/update 循环。
    一般来说同一域名下的 url 链接会被合成到同一个 fetchlist。这样做的考虑是:当同时使用多个工具抓取的时候,不会产生重复抓取的现象。Nutch 遵循 Robots Exclusion Protocol, 可以用robots.txt 定义保护私有网页数据不被抓去。
    上面这个抓取工具的组合是Nutch的最外层的,也可以直接使用更底层的工具,自己组合这些底层工具的执行顺序达到同样的结果。这是Nutch吸引人的地方。下面把上述过程分别详述一下,括号内就是底层工具的名字:
  1. 把开始抓取的跟Url 放入WebDb (inject)。
  2. 从WebDb的新 segment 中生成 fetchlist (generate)。
  3. 根据 fetchlist 列表抓取网页的内容 (fetch)。
  4. 根据抓取回来的网页链接url
  5. 更新 WebDB (updatedb)。
  6. 重复上面2-5个步骤直到到达指定的抓取层数。

功能 

  1. 基于Hadoop的分布式系统;
  2. 存储层剥离,支持存储HBase, Cassandra, MySql等数据库
  3. 基于插件式设计,扩展和定制比较方便
  4. 支持网页解析和索引,可以对接至Solr,搭建通用的搜索引擎

缺点

  1.  基于Hadoop开发,Windows下开发调试比较麻烦

posted @   早起早起^^  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示