【问题标题】:An alternative web crawler to Nutch [closed]Nutch的替代网络爬虫[关闭]
【发布时间】:2011-05-15 06:05:31
【问题描述】:

我正在尝试构建一个专门的搜索引擎网站,该网站为有限数量的网站编制索引。我想出的解决方案是:

  • 使用 Nutch 作为网络爬虫,
  • 使用 Solr 作为搜索引擎,
  • 前端和站点逻辑使用 Wicket 进行编码。

问题是我发现 Nutch 相当复杂,而且它是一个需要定制的大软件,尽管不存在详细的文档(书籍、最近的教程等)。

现在的问题:

  1. 对网站的漏洞理念有任何建设性的批评吗?
  2. 除了 Nutch(作为网站的抓取部分)之外,是否有一个很好但又简单的替代方案?

谢谢

【问题讨论】:

  • 多年来,我们尝试了各种方法:Nutch、Heritrix、Storm Crawler、crawler4j、我们自己的内部爬虫……但是,只有一个真正令人印象深刻的替代品是我们整个团队发誓的: 混合节点。

标签: search-engine web-crawler nutch


【解决方案1】:

Scrapy是一个爬取网站的python库。它相当小(与 Nutch 相比),专为有限的站点抓取而设计。它有一个 Django 类型的 MVC 样式,我发现它很容易定制。

【讨论】:

    【解决方案2】:

    对于爬取部分,我非常喜欢anemonecrawler4j。它们都允许您为链接选择和页面处理添加自定义逻辑。对于您决定保留的每个页面,您可以轻松地将调用添加到 Solr。

    【讨论】:

      【解决方案3】:

      在,C#中,但是简单很多,可以直接和作者交流。 (我)

      我曾经使用过 Nutch,你是对的;它是一只熊。

      http://arachnode.net

      【讨论】:

      • 我试过了,并不简单。
      【解决方案4】:

      这取决于您认为抓取的网站数量和 URL 数量。 Apache Nutch 将页面文档存储在 Apache HBase(依赖于 Apache Hadoop)上,它很可靠,但很难设置和管理。

      由于爬虫只是一个页面获取(如 CURL)并检索链接列表以提供您的 URL 数据库,我相信您可以自己编写一个爬虫(特别是如果您有几个网站),使用简单的 MySQL 数据库(可能是 RabbitMQ 之类的队列软件来安排爬取作业)。

      另一方面,爬虫可能更复杂,您可能希望从 HTML 文档中删除 HEAD 部分,只保留页面的真实“内容”等...

      此外,Nutch 可以使用 PageRank 算法对您的页面进行排名。您可以使用 Apache Spark 来做同样的事情(更有效,因为 Spark 可以将数据缓存在内存中)。

      【讨论】:

        【解决方案5】:

        我相信 nutch 是您应用程序的最佳选择,但如果您愿意,有一个简单的工具:Heritrix。 除此之外,我推荐使用js作为前端语言,因为solr返回的json很容易被js处理。

        【讨论】:

          猜你喜欢
          • 2011-07-07
          • 1970-01-01
          • 2023-04-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多