有些人问,开发网络爬虫应该选择Nutch、Crawler4j、WebMagic、scrapy、WebCollector还是其他的?这里按照我的经验随便扯淡一下:上面说的爬虫,基本可以分3类:1.分布式爬虫:Nutch2.JAVA单机爬虫:Crawler4j、WebMagic、WebCollector3. 非JAVA单机爬虫:scrapy第一类:分布式爬虫爬虫使用分布式,主要是解决两个问题:1)海量URL管理2)网速现在比较流行的分布式爬虫,是Apache的Nutch。但是对于大多数用户来说,Nutch是这几类爬虫里,最不好的选择,理由如下:1)Nutch是为搜索引擎设计的爬虫,大多数用户是需要一个做精准数据爬取(精抽取)的爬虫。Nutch运行的一套流程里,有三分之二是为了搜索引擎而设计的。对精抽取没有太大的意义。也就是说,用Nutch做数据抽取,会浪费很多的时间在不必要的计算上。而且如果你试图通过对Nutch进行二次开发,来使得它适用于精抽取的业务,基本上就要破坏Nutch的框架,把Nutch改的面目全非,有修改Nutch的能力,真的不如自己重新写一个分布式爬虫框架了。2)Nutch依赖hadoop运行,hadoop本身会消耗很多的时间。如果集群机器数量较少,爬取速度反而不如单机爬虫快。3)Nutch虽然有一套插件机制,而且作为亮点宣传。可以看到一些开源的Nutch插件,提供精抽取的功能。但是开发过Nutch插件的人都知道,Nutch的插件系统有多蹩脚。利用反射的机制来加载和调用插件,使得程序的编写和调试都变得异常困难,更别说在上面开发一套复杂的精抽取系统了。而且Nutch并没有为精抽取提供相应的插件挂载点。Nutch的插件有只有五六个挂载点,而这五六个挂载点都是为了搜索引擎服务的,并没有为精抽取提供挂载点。大多数Nutch的精抽取插件,都是挂载在“页面解析”(parser)这个挂载点的,这个挂载点其实是为了解析链接(为后续爬取提供URL),以及为搜索引擎提供一些易抽取的网页信息(网页的meta信息、text文本)。4)用Nutch进行爬虫的二次开发,爬虫的编写和调试所需的时间,往往是单机爬虫所需的十倍时间不止。了解Nutch源码的学习成本很高,何况是要让一个团队的人都读懂Nutch源码。调试过程中会出现除程序本身之外的各种问题(hadoop的问题、hbase的问题)。5)很多人说Nutch2有gora,可以持久化数据到avro文件、hbase、mysql等。很多人其实理解错了,这里说的持久化数据,是指将URL信息(URL管理所需要的数据)存放到avro、hbase、mysql。并不是你要抽取的结构化数据。其实对大多数人来说,URL信息存在哪里无所谓。6)Nutch2的版本目前并不适合开发。官方现在稳定的Nutch版本是nutch2.2.1,但是这个版本绑定了gora-0.3。如果想用hbase配合nutch(大多数人用nutch2就是为了用hbase),只能使用0.90版本左右的hbase,相应的就要将hadoop版本降到hadoop 0.2左右。而且nutch2的官方教程比较有误导作用,Nutch2的教程有两个,分别是Nutch1.x和Nutch2.x,这个Nutch2.x官网上写的是可以支持到hbase 0.94。但是实际上,这个Nutch2.x的意思是Nutch2.3之前、Nutch2.2.1之后的一个版本,这个版本在官方的SVN中不断更新。而且非常不稳定(一直在修改)。所以,如果你不是要做搜索引擎,尽量不要选择Nutch作为爬虫。有些团队就喜欢跟风,非要选择Nutch来开发精抽取的爬虫,其实是冲着Nutch的名气(Nutch作者是Doug Cutting),当然最后的结果往往是项目延期完成。如果你是要做搜索引擎,Nutch1.x是一个非常好的选择。Nutch1.x和solr或者es配合,就可以构成一套非常强大的搜索引擎了。如果非要用Nutch2的话,建议等到Nutch2.3发布再看。目前的Nutch2是一个非常不稳定的版本。

精准数据爬取(精抽取)的爬虫选择问题相关推荐

  1. python实现数据爬取——糗事百科爬虫项目

    python实现数据爬取--糗事百科爬虫项目 # urllib.request 请求模块 import urllib.request # re 模块使 Python 语言拥有全部的正则表达式功能. i ...

  2. yelp纽约地区数据爬取。使用feapder爬虫框架

    yelp纽约地区数据爬取.使用feapder爬虫框架 本文使用了国内作者的一款feapder轻量级开源爬虫框架.进行yelp站点数据抓取. 第一部分为根据开放api获取店铺信息. 第二部分为根据商店i ...

  3. 汽车用户消费投诉数据爬取分析(Python爬虫)

    多线程爬虫代码 """ name:汽车用户消费投诉_品牌url爬取,已完成 author:zhangxiaoyu """ import _t ...

  4. Python爬虫-CSDN博客排行榜数据爬取

    文章目录 前言 网络爬虫 搜索引擎 爬虫应用 谨防违法 爬虫实战 网页分析 编写代码 运行效果 反爬技术 前言 开始接触 CTF 网络安全比赛发现不会写 Python 脚本的话简直寸步难行--故丢弃 ...

  5. python手机端下载-Python3,x:如何进行手机APP的数据爬取

    Python3,x:如何进行手机APP的数据爬取 一.简介 平时我们的爬虫多是针对网页的,但是随着手机端APP应用数量的增多,相应的爬取需求也就越来越多,因此手机端APP的数据爬取对于一名爬虫工程师来 ...

  6. 打造轻量级可视化数据爬取工具-菩提

    作者:jiaqiangwang,腾讯 IEG 后台开发工程师 背景 在大数据及机器学习日益火爆的今天,数据作为基石发挥了至关重要的作用.网页内容爬取作为数据的一个重要补充来源,数据爬取开发成了一个必不 ...

  7. python怎样获得手机软件app数据_如何进行手机APP的数据爬取?

    平时我们的爬虫多是针对网页的,但是随着手机端APP应用数量的增多,相应的爬取需求也就越来越多,因此手机端APP的数据爬取对于一名爬虫工程师来说是一项必备的技能.我们知道,网页爬取的时候我经常使用F12 ...

  8. 使用python进行股票数据爬取中的时间限制和策略

    股票数据爬取中的时间限制和策略 在进行股票数据爬取时,时间限制和策略是非常重要的考虑因素.本文将介绍两个与此相关的函数:is_trade_day()和stock_work_day(). is_trad ...

  9. Python数据爬取

    文章目录 一.数据爬取介绍 1.数据采集 2.常用数据爬取工具 二.Scrapy爬虫框架 1.安装配置Scrapy框架 2.Debug爬虫工程 3.Scrapy框架组成 4.Scrapy返回爬取页面数 ...

最新文章

  1. 进阶篇第十一期:高德地图的使用
  2. resin启动时报错com.caucho.config.LineConfigException的解决
  3. Linux之centos镜像
  4. SkyEye——汽车电子系统仿真测试工具
  5. CF1025C Plasticine zebra
  6. 服务器物理内存只增不降,服务器内存不断增加
  7. 校友聊---Sprint计划会议总结
  8. Median of Two Sorted Arrays@LeetCode
  9. secureCRT下载
  10. welearn考试切屏会有显示吗_welearn随行课堂班级测试答案
  11. 【深度学习】(1) CNN中的注意力机制(SE、ECA、CBAM),附Pytorch完整代码
  12. SAP将未审批的采购订单提交到OA去审批 程序 OA审批结果返回到SAP
  13. Spark Event Log (一)概述
  14. python123货币转换器_python货币转换
  15. xXx时间屏保+背景图片
  16. 以太坊实践经验之《eth.blockNumber结果为0》
  17. 2019春招前端面试: 闯关记(精排精校)
  18. golang 连接mysql 的时间参数loc, parseTime
  19. 压缩包密码忘记了打不开?教你用pyhton轻松解决,附视频讲解
  20. python 字符的编码

热门文章

  1. 动画人3D建模的二选一:C4D 还是 3D MAX?
  2. 华里士公式的推导及其推广
  3. 【PS | 学习】毛坯图如何调色成日系小清新
  4. python读写hdfs
  5. 《MATLAB智能算法30个案例》:第30章 极限学习机的回归拟合及分类——对比实验研究
  6. 曼普拉斯MPMGS200-F01磁传感器快速配置RS485modbus协议
  7. permissions 权限
  8. 因为某种原因阻止文本引擎初始化_文本文档的协同编辑实现
  9. python函数返回字符判断_Python中用startswith()函数判断字符串开头的教程
  10. java流转图片_java 二进制流转换为图片