larbin

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.爬行後的文件夾變爲如下

             

              這裏的fifo* 及save是增加的文件。很多個。我已經刪了一些fifo*文件了。                                 

              1.fifo0*的存儲的是你爬取的url記錄。記錄格式如下:                                       

                抓取深度  url名

                3         www.*

                2         www.* 

                ... 很多了。

              2.fifowait*的是存儲的等待抓取的url記錄。記錄格式與fifo0*是一 個樣的。

s             3.save/ 是個目錄了。裏面就是爬取網頁的內容了。

2           2.save目錄下的組織結構如下

             

              裏目錄其實是很多個以d開動的子目錄的。這裏只貼了幾個。子目錄中存儲的就是抓取的各個網頁內容。每個子目錄下存貯2000

              網頁的內容。

            3.d*目錄存儲的文件結構如下

             

              每個抓取的內容都是一個f開頭的字母文件裏面就是抓取的內容了。總共一個目錄下有2000個這樣的f文件。裏面的內容更大概

              網頁源碼之類的信息了即網頁內容的字符形式表示。

          具體抓取的內容就不貼出了。自己可以找網站抓取。抓取可能對被抓取的網站造成一定的影響。上述抓取的輸出方式是簡單保存

          式。即“#define SIMPLE_SAVE  :   簡單保存。存在save/dxxxxxx/fyyyyyy文件中 每個目錄下2000個文件 ”這個模式。

     

          到此larbin的一次簡單的運行就結束了。後續要好好研究一下它的具體原理和原文件實現了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章