复杂的爬虫框架,到底怎么选择

 "你写爬虫的时候使用的是什么框架 ,选择这个框架的原因是什么",考官经常这么问.

   今天小编为大家总结下爬虫、常见爬虫框架、爬虫框架优缺点:

 1)、 什么是爬虫?

      爬虫是一种按照一定的规则,自动化抓取各种网页信息的程序或者脚本

  2)、爬虫是怎么构成的?

      在网络爬虫的系统框架中,主过程由控制器,解析器,资源库三部分组成。

       1)、控制器的主要工作是负责给多线程中的各个爬虫线程分配工作任务。

       2)、解析器的主要工作是下载网页,进行页面的处理,主要是将一些JS脚本标签、CSS代码内容、空格字符、HTML标签等内容处理掉,爬虫的基本工作是由解析器完成。

       3)、资源库是用来存放下载到的网页资源,一般都采用大型的数据库存储,如Oracle数据库,并对其建立索引。

   3)、 常见爬虫框架有哪些种类?


      根据语言来分,列出比较常见的爬虫框架:

       Python中有Scrapy、Pyspider;

      Java中有Nutch,WebMagic,WebCollector,heritrix3,Crawler4j

不同框架

   4)、   这些框架有哪些优缺点?


(1)、Scrapy:

 

      Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试.

     Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。

     Scrap,是碎片的意思,这个Python的爬虫框架叫Scrapy。

优点:

1.极其灵活的定制化爬取。

2.社区人数比较多、文档比较完善。

3.URL去重采用布隆过滤器方案。

4.可以处理不完整的HTML,Scrapy已经提供了selectors(一个在lxml的基础上提供了更高级的接口),

    可以高效地处理不完整的HTML代码。

缺点:

1.对新学员不友好,需要一定新手期

(2)、Pyspider:

         pyspider 是一个用python实现的功能强大的网络爬虫系统,能在浏览器界面上进行脚本的编写,功能的调度和爬取结果的实时查看,后端使用常用的数据库进行爬取结果的存储,还能定时设置任务与任务优先级等。

优点:

1.支持分布式部署。

2.完全可视化,对用户非常友好:WEB 界面编写调试脚本,起停脚本,监控执行状态,查看活动历史,获取结果产出。

3.简单,五分钟就能上手。脚本规则简单,开发效率高。支持抓取JavaScript的页面。

总之,Pyspider非常强大,强大到更像一个产品而不是一个框架。

缺点:

1.URL去重使用数据库而不是布隆过滤器,亿级存储的db io将导致效率急剧降低。

 2.使用上的人性化牺牲了灵活度,定制化能力降低。

(3)、Nutch


    Nutch是为搜索引擎设计的爬虫,大多数用户是需要一个做精准数据爬取(精抽取)的爬虫,Nutch运行的一套流程里,有三分之二是为了搜索引擎而设计的.

优点

1.Nutch支持分布式抓取,并有Hadoop支持,可以进行多机分布抓取,存储和索引。另外很吸引人的一点在于,它提供了一种插件框架,使得其对各种网页内容的解析、各种数据的采集、查询、集群、过滤等功能能够方便的进行扩展,正是由于有此框架,使得 Nutch 的插件开发非常容易,第三方的插件也层出不穷,极大的增强了 Nutch 的功能和声誉。

缺点

1.Nutch的爬虫定制能力比较弱

(4)、WebMagic


WebMagic是一个简单灵活的Java爬虫框架。基于WebMagic,你可以快速开发出一个高效、易维护的爬虫。 

优点: 

 1.简单的API,可快速上手 

 2.模块化的结构,可轻松扩展 

 3.提供多线程和分布式支持

缺点:

 1.不支持JS页面抓取

(5)、WebCollector

       WebCollector是一个无须配置、便于二次开发的JAVA爬虫框架(内核),它提供精简的的API,只需少量代码即可实现一个功能强大的爬虫。WebCollector-Hadoop是WebCollector的Hadoop版本,支持分布式爬取。

 优点:

  1.基于文本密度的网页正文自动抽取

  2.支持断点重爬

  3.支持代理

缺点:

  1.不支持分布式,只能单机

   2.无URL优先级调度

  3.活跃度不高


(6)、Heritrix3

      Heritrix 是一个由 java 开发的、开源的网络爬虫,用户可以使用它来从网上抓取想要的资源

优点

Heritrix的爬虫定制参数多

缺点

1.单实例的爬虫,之间不能进行合作。

2.在有限的机器资源的情况下,却要复杂的操作。

3.只有官方支持,仅仅在Linux上进行了测试。

4.每个爬虫是单独进行工作的,没有对更新进行修订。

5.在硬件和系统失败时,恢复能力很差。

6.很少的时间用来优化性能。

7.相对于Nutch,Heritrix仅仅只是一个爬虫工具,没有提供搜索引擎。如果要对抓取的站点排序必须要实现类似于Pagerank的复杂算法。

(7)、Crawler4j


Crawler4j是一款基于Java的轻量级单机开源爬虫框架

优点

1.多线程采集

2.内置了Url 过滤机制,采用的是BerkeleyDB 进行url的过滤。

3.可扩展为支持结构化提取网页字段,可作为垂直采集用

缺点

1.不支持动态网页抓取,例如网页的ajax部分

2.不支持分布式采集,可以考虑将其作为分布式爬虫的一部分,客户端采集部分

为了更加直观这7种爬虫框架,小编做了一个框架优缺点对比图,如下:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343