Larbin是一种多功能的网络爬虫,一个法国人最初为 XYLEME project写的,当时只是为了获取网络上的XML文件.Larbin是非常灵活可订制的.

最新版本的Larbin在一台普通的PC上一天可爬到5,000,000个网页,当然这很大程序上依赖于你的网速.Larbin工作于linux上,并且依赖于一些标准库,比如adns.

下载一个larbin-2.6.3.tar.gz解压,进入目录,运行

./configure

make

进行编译安装.

一般会出很多问题,你需要提前完成以下工作:

1. 确认已经安装了build-essential程序包,最新的GCC编译器,已安装了内核程序包.

这一步一般都没问题,该装的都装了.

2.configure时会提示找不到makedepend命令,所以你需要安装一下

sudo apt-get install xutils-dev

3.编译的时候还会出一个问题,说从char*转换到byte*出错,这是由 /larbin-2.6.3/adnsinternal.h中第568—571行代码引起的,直接把它注释掉即可.

当然也可以改一下

adns_status adns__parse_domain(adns_state ads, int serv, adns_query qu,

         vbuf *vb, parsedomain_flags flags,

          const byte *dgram, int dglen, int *cbyte_io, int max); 

修改为:

adns_status adns__parse_domain(adns_state ads, int serv, adns_query qu,

         vbuf *vb, adns_queryflags flags,

          const byte *dgram, int dglen, int *cbyte_io, int max);

改过之后还是会有警告,不过谢天谢地,已经不是error了.

4.make的时候会说找不到<iostream.h>,你需要把每个程序文件里的 <iostream.h>改为 <iostream>,然后加上using namespace std这句话.也可以有一种简单省力的方法:

/usr/include/c++/CP一份iostream文件larbinsrc目录下。并将其的名改为iostream.h.打开此文件添加一句using namespace std;

然后再./configure  make应该就没问题了.

运行  ./larbin

中止  Ctrl+C        

重起  ./larbin -scratch

注意停止larbin的时候不要用Ctrl+z,那样当你再次 ./larbin或者 ./larbin -scratch的时候,会端口已被占用,无法重新启动.

下面报一下我的两个配置文件里的内容

larbin.conf

httpPort 8099

inputPort 1976

pagesConnexions 100

dnsConnexions 5

waitDuration 60

startUrl http://www.baidu.com/

limitToDomain .com .cn .hk end

forbiddenExtensions.tar .gz .tgz .zip .Z .rpm .deb

.ps .dvi .pdf.png .jpg .jpeg .bmp .smi .tiff .gif

.mov .avi .mpeg .mpg .mp3 .qt .wav .ram .rm

.jar .java .class .diff

.doc .xls .ppt .mdb .rtf .exe .pps .so .psd

end

options.h

#ifndef LARBIN_CONFIG

#define LARBIN_CONFIG
#include "config.h"

#define SIMPLE_SAVE 

#define FOLLOW_LINKS

#define EXIT_AT_END

#define CGILEVEL 1

#define DEPTHBYSITE

#define RELOAD

#define CRASH

#endif

在/larbin-2.6.3/和 /larbin-2.6.3/src下都options.h文件,保持它们的内容是一致的.

本想将这个放在上一个爬虫larbin的运行配置说明中结果提示超过40000个字符太长了。百度真是小气。才多点字啊。呵呵。。

larbin运行结果简介:  

            1.爬行后的文件夹变为如下

              larbin_linux 编程

              这里的fifo* 及save是增加的文件。很多个。我已经删了一些fifo*文件了。                                 

              1.fifo0*的存储的是你爬取的url记录。记录格式如下:                                       

                抓取深度  url名

                3         www.*

                2         www.* 

                ... 很多了。

              2.fifowait*的是存储的等待抓取的url记录。记录格式与fifo0*是一 个样的。

s             3.save/ 是个目录了。里面就是爬取网页的内容了。

2           2.save目录下的组织结构如下

              larbin_linux 编程_02

              里目录其实是很多个以d开动的子目录的。这里只贴了几个。子目录中存储的就是抓取的各个网页内容。每个子目录下存贮2000

              网页的内容。

            3.d*目录存储的文件结构如下

              larbin_linux 编程_03

              每个抓取的内容都是一个f开头的字母文件里面就是抓取的内容了。总共一个目录下有2000个这样的f文件。里面的内容更大概

              网页源码之类的信息了即网页内容的字符形式表示。

          具体抓取的内容就不贴出了。自己可以找网站抓取。抓取可能对被抓取的网站造成一定的影响。上述抓取的输出方式是简单保存

          式。即“#define SIMPLE_SAVE  :   简单保存。存在save/dxxxxxx/fyyyyyy文件中 每个目录下2000个文件 ”这个模式。

     

          到此larbin的一次简单的运行就结束了。后续要好好研究一下它的具体原理和原文件实现了