`

Nutch和CasperJS的区别

 
阅读更多
http://bingozhao.com/blog/?p=53
研究淘宝产品数据抓取的时候遇到动态内容读取的问题(淘宝上的价格,评论信息是通过JS动态加载的),Nutch在这方面并未考虑。

对应的解决方案是基于Webkit/Geko等浏览器核心创建的Headless Browser Agent,比如casperjs(基于pantomjs),可以灵活实现各种模拟用户操作并动态更新DOM结构已获得动态内容。基本上用户可以看到的信息(文字,图片等等)通过这个代理都可以抓取到,有效解决了动态数据抓取的问题。

casperjs脚本基于Javascript(或者Coffeescript),基本编程风格很适合页面前端编程人员进行DOM遍历,查找,还可以动态扩展额外脚本(比如模拟用户操作的脚本)等,使用起来比较简单。存在的问题是:

1. 相比于Nutch这个高效抓取全文静态页面的好帮手来说,casperjs太慢了。前者基本上是在ms级别,后者为秒级,差了1000倍,当然这是因为强调用户交互的动态性,增加了更多的客户端和服务端连接,更多的数据解析功能,并且JS本身基于解释性语言的缘故,性能自然不能跟Nutch比。
2. casperjs还是不太完善,有比较多的bug需要修正。比如对于selector的选取并没有那么鲁棒性,经常需要调试来调整代码的输出以避免selector耍性子。
Headless Webkit/Geko Agent/Spider应该是适应未来发展的,希望能逐渐改善处理速度,满足实时数据抓取的需求。(按照现在目测casperjs抓取解析的速度,一个中等复杂页面上几个关键字模板抓取内容的时间在5秒左右,这样算下来要抓取100万个页面需要差不多一年,必须使用大规模的分布式集群进行抓取才能取得实际产品环境的效果)
分享到:
评论
2 楼 pyzheng 2015-03-24  
前面,虽然没用过.
1 楼 maglic 2015-03-24  
那动态抓取数据,用什么效率会比较好呢?

相关推荐

    \Lucene Nutch和安装说明文旦

    标题中的“Lucene Nutch和安装说明文档”暗示了我们要讨论的是一个关于Apache Lucene和Nutch的安装过程。Lucene是一个全文搜索引擎库,它提供了核心的搜索功能,而Nutch则是一个基于Lucene的开源网络爬虫项目,用于...

    eclipse配置nutch,eclipse配置nutch

    因此,利用Eclipse作为开发工具,可以简化Nutch的配置流程,提供一个友好的图形界面来管理项目和代码,同时利用其强大的调试功能,帮助开发者快速定位和解决问题。 ### 二、Eclipse配置Nutch的步骤详解 #### 步骤1...

    实验报告(利用Nutch和IKanalyzer构造中文分词搜索引擎)

    尝试使用Nutch 0.9和IKAnalyzer 3.1.6GA组合,但由于版本兼容性问题导致失败,因此改用Nutch 1.2和IKAnalyzer 3.2.8,并将Tomcat升级到6.0.35版本。 在Nutch 1.2中集成IKAnalyzer,需要修改NutchAnalysis.jj文件,...

    nutch2.2.1安装步骤.docx

    总的来说,Nutch 2.2.1 的安装和配置涉及到多个组件的集成,包括 Ant、JDK、Tomcat、MySQL 和 Solr。每个组件都需要正确配置才能使 Nutch 正常运行。理解这些组件的作用以及它们之间的交互是掌握 Nutch 的关键,这将...

    nutch使用&Nutch;入门教程

    Nutch是Apache软件基金会开发的一款开源的网络爬虫项目,主要用于收集、索引和搜索互联网上的数据。这个“Nutch使用&Nutch;入门教程”将带你深入理解Nutch的基本概念、工作流程以及如何实际操作它来执行网络爬取任务...

    Apache Nutch 1.7 在windows和Linux下的安装

    Apache Nutch 1.7 在 Windows 和 Linux 下的安装 Apache Nutch 1.7 是一个开源的网络爬虫和搜索引擎项目,它可以对互联网上的网页进行爬取、索引和搜索。本文将详细介绍 Apache Nutch 1.7 在 Windows 和 Linux 下的...

    nutch

    **Nutch 概述** Nutch 是一个开源的网络爬虫项目,主要设计用于抓取、索引和搜索互联网...学习和使用 Nutch 可以帮助开发者深入了解 Web 数据抓取和搜索引擎的工作原理,对于大数据处理和信息提取有着重要的实践价值。

    基于ApacheNutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件nutch-htmlunit.zip

    基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。 According to the implementation of Apache Nutch 1.8, we can't get dynamic ...

    nutch帮助文档;nutch学习 入门

    Nutch是Apache软件基金会开发的一款开源搜索引擎项目,主要用于抓取、索引和搜索Web内容。作为初学者,了解和掌握Nutch的相关知识是探索搜索引擎技术的第一步。本篇将深入探讨Nutch的基本概念、功能、架构以及如何...

    Nutch搜索引擎·Nutch简单应用(第3期)

    Nutch搜索引擎能够对局域网和整个Web进行爬取,且提供了一个命令行工具来控制其运行和管理。 首先,Nutch的命令是其运行和管理的核心,通过不同的命令,Nutch可以执行相应的爬取和索引操作。例如, crawl命令代表了...

    Apache Nutch 1.7 学习总结

    本文将详细介绍在Windows和Linux环境下如何搭建Nutch 1.7,并探讨如何将其与Solr集成使用。 **Nutch 在 Windows 下的搭建过程** 1. **准备工作** - 检查系统需求:确保你的Windows系统满足运行Java开发环境(JDK...

    Nutch2.3.1 环境搭建

    Nutch2.3.1是Apache Nutch的一个稳定版本,它是一个开源的网络爬虫框架,主要用于抓取、解析和索引互联网上的网页内容。在本文中,我们将深入探讨如何搭建Nutch2.3.1的运行环境,以便进行网页抓取和分析。 **一、...

    Nutch 0.8笔记NUTCHNUTCH

    1. **文档阅读**:深入了解 Nutch 需要阅读官方提供的文档,如 "Introduction to Nutch, Part 1 Crawling" 和 "Introduction to Nutch, Part 2 Searching",以及源代码。Nutch 的源码结构清晰,便于理解和学习。 2....

    nutch09版本亲测好用

    Nutch 0.9 是一个历史悠久的开源搜索引擎项目,它主要关注网络爬虫和网页抓取方面的技术。这个版本在当时提供了稳定且功能强大的爬虫框架,被广泛用于数据采集和分析任务。以下是对 Nutch 0.9 版本的一些关键知识点...

    Nutch入门教程 高清 带书签

    Nutch是Apache软件基金会开发的一款开源搜索引擎项目,主要用于网络数据抓取和索引。这个“Nutch入门教程 高清 带书签”的资源,很显然是为了帮助初学者快速理解并掌握Nutch的基本操作和核心概念。下面,我们将深入...

    nutch开发资料 搜索引擎

    这个开发资料压缩包包含了与Nutch相关的源代码和可能的配置文件,可以帮助开发者深入了解和学习Nutch的工作原理以及如何进行定制化开发。以下是对Nutch及其相关知识点的详细介绍: 1. **Nutch介绍**:Nutch是一个...

    Nutch相关框架视频教程

    资源名称:Nutch相关框架视频教程资源目录:【】Nutch相关框架视频教程1_杨尚川【】Nutch相关框架视频教程2_杨尚川【】Nutch相关框架视频教程3_杨尚川【】Nutch相关框架视频教程4_杨尚川【】Nutch相关框架视频教程5_...

    Nutch 1.2源码阅读

    具体而言,会加载`nutch-default.xml`、`crawl-tool.xml`(可选)和`nutch-site.xml`这三个配置文件,分别代表默认配置、爬虫特有配置和用户自定义配置。这些配置文件对Nutch的行为和性能具有决定性的影响。 #### ...

Global site tag (gtag.js) - Google Analytics