导航:首页 > 文件教程 > crawler4j案例教程

crawler4j案例教程

发布时间:2023-08-06 08:56:44

⑴ 开源爬虫框架各有什么优缺点

首先爬虫框架有三种

  1. 分布式爬虫:Nutch

  2. JAVA单机爬虫:Crawler4j,WebMagic,WebCollector

  3. 非JAVA单机爬虫:scrapy

第一类:分布式爬虫

优点:

  1. 海量URL管理

  2. 网速快

缺点:

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

  2. 用Nutch做数据抽取,会浪费很多的时间在不必要的计算上。而且如果你试图通过对Nutch进行二次开发,来使得它适用于精抽取的业务,基本上就要破坏Nutch的框架,把Nutch改的面目全非。

  3. Nutch依赖hadoop运行,hadoop本身会消耗很多的时间。如果集群机器数量较少,爬取速度反而不如单机爬虫。

  4. Nutch虽然有一套插件机制,而且作为亮点宣传。可以看到一些开源的Nutch插件,提供精抽取的功能。但是开发过Nutch插件的人都知道,Nutch的插件系统有多蹩脚。利用反射的机制来加载和调用插件,使得程序的编写和调试都变得异常困难,更别说在上面开发一套复杂的精抽取系统了。

  5. Nutch并没有为精抽取提供相应的插件挂载点。Nutch的插件有只有五六个挂载点,而这五六个挂载点都是为了搜索引擎服务的,并没有为精抽取提供挂载点。大多数Nutch的精抽取插件,都是挂载在“页面解析”(parser)这个挂载点的,这个挂载点其实是为了解析链接(为后续爬取提供URL),以及为搜索引擎提供一些易抽取的网页信息(网页的meta信息、text)

  6. 用Nutch进行爬虫的二次开发,爬虫的编写和调试所需的时间,往往是单机爬虫所需的十倍时间不止。了解Nutch源码的学习成本很高,何况是要让一个团队的人都读懂Nutch源码。调试过程中会出现除程序本身之外的各种问题(hadoop的问题、hbase的问题)。

  7. Nutch2的版本目前并不适合开发。官方现在稳定的Nutch版本是nutch2.2.1,但是这个版本绑定了gora-0.3。Nutch2.3之前、Nutch2.2.1之后的一个版本,这个版本在官方的SVN中不断更新。而且非常不稳定(一直在修改)。

第二类:JAVA单机爬虫

优点:

  1. 支持多线程。

  2. 支持代理。

  3. 能过滤重复URL的。

  4. 负责遍历网站和下载页面。爬js生成的信息和网页信息抽取模块有关,往往需要通过模拟浏览器(htmlunit,selenium)来完成。

缺点:

设计模式对软件开发没有指导性作用。用设计模式来设计爬虫,只会使得爬虫的设计更加臃肿。

第三类:非JAVA单机爬虫

优点:

  1. 先说python爬虫,python可以用30行代码,完成JAVA

  2. 50行代码干的任务。python写代码的确快,但是在调试代码的阶段,python代码的调试往往会耗费远远多于编码阶段省下的时间。

  3. 使用python开发,要保证程序的正确性和稳定性,就需要写更多的测试模块。当然如果爬取规模不大、爬取业务不复杂,使用scrapy这种爬虫也是蛮不错的,可以轻松完成爬取任务。

缺点:

  1. bug较多,不稳定。

阅读全文

与crawler4j案例教程相关的资料

热点内容
jstljar 浏览:99
游戏环境程序集合 浏览:162
qq音乐不能播放 浏览:431
15g的文件 浏览:456
Win10系统无法在消息文件中为 浏览:635
ccd文件 浏览:826
win7查看文件启动路径 浏览:693
溧水114网站电话多少 浏览:687
苹果表盘文件下好了怎么安装 浏览:692
社工库都有哪些网站 浏览:886
恢复删除的word文件 浏览:822
卢本伟什么事情在网络上走红 浏览:522
sp文件夹在里面哪个是卸载程序 浏览:70
英雄联盟新版本611 浏览:483
三星安卓70夜间模式 浏览:135
linux文件怎么解除占用 浏览:743
app爆红怎么处理 浏览:728
为什么没有办法复制文件到光盘 浏览:620
小孩学专注力和编程哪个好 浏览:43
word中八卦 浏览:310

友情链接