自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解密搜索引擎技術(shù)之爬蟲Larbin

開源
Larbin是一個用C++開發(fā)的開源網(wǎng)絡(luò)爬蟲,有一定的定制選項(xiàng)和較高的網(wǎng)頁抓取速度。

一、簡介

Larbin是一個用C++開發(fā)的開源網(wǎng)絡(luò)爬蟲,有一定的定制選項(xiàng)和較高的網(wǎng)頁抓取速度。

Larbin爬蟲結(jié)構(gòu)圖及主要模塊對應(yīng)關(guān)系如下圖所示:

Larbin的運(yùn)行過程可以描述如下:種子URL文件最初初始化*URLsDisk,讀取到namedSiteList中,通過adns庫調(diào)用,逐漸往Fifo<NamedSite> *dnsSites和Fifo<IPSite>*okSites內(nèi)裝入鏈接,而Fetch模塊直接從Fifo<IPSite> *okSites中獲得用于抓取的URL,為抓取到的網(wǎng)頁建立hash表,以防止網(wǎng)頁的重復(fù)抓取。然后通過html類的方法從下載到的網(wǎng)頁中析取出新的URL,新加入前端隊列的URL要求符合robots filter,并通過hash表對URL去重。一次抓取結(jié)束后進(jìn)行相關(guān)的讀寫操作,然后通過poll函數(shù)選擇適合的套接字接口,開始新的抓取。這樣抓取就可以一直循環(huán)下去,直到用戶終止或者發(fā)生中斷。

更多關(guān)于Larbin項(xiàng)目的細(xì)節(jié)(包括源碼)可以參看這里。

二、安裝

這里以在CentOS 6.2下源碼安裝larbin-2.6.3.tar.gz為例說明之。

解壓到指定目錄后,如果直接./configure,一般會出現(xiàn)缺少依賴makedepend的錯誤,如下安裝改依賴即可:

  1. #yum install makedepend  
  2. #./configure 

./configure成功后,如果直接make同樣會出現(xiàn)錯誤,主要如下:

  1. parse.c:113: error: conflicting types for ‘adns__parse_domain’  
  2. internal.h:569: note: previous declaration of ‘adns__parse_domain’ was here 

根據(jù)提示直接去adns目錄找到internal.h注釋掉該函數(shù)即可。

再次make,依然出現(xiàn)錯誤,這次主要是因?yàn)榇a用老式C代碼編寫,具體表現(xiàn)如下:

  1. input.cc:6:22: error: iostream.h: No such file or directory 

采用如下命令替換 iostream.h為 iostream

  1. #sed -i -e 's/iostream.h/iostream/g' `grep -rl iostream.h *` 

注意上面包含grep的不是單引號而是Esc鍵下面那個符號`。

再次make,出現(xiàn)大量錯誤,原因同上,表現(xiàn)如下:

  1. hashTable.cc:32: error: ‘cerr’ was not declared in this scope  
  2. hashTable.cc:41: error: ‘cerr’ was not declared in this scope  
  3. hashTable.cc:42: error: ‘endl’ was not declared in this scop 

執(zhí)行如下命令將cerr和endl替換為std::cerr和std::endl:

  1. #sed -i -e 's/cerr/std::cerr/g' `grep -rl cerr *`  
  2. #sed -i -e 's/endl/std::endl/g' `grep -rl endl *` 

再次make就不會有問題了,編譯完后在當(dāng)前目錄下會產(chǎn)生larbin可執(zhí)行文件。

  1. #./larbin  
  2. larbin_2.6.3 is starting its search 

看到上面屏幕輸出說明成功啟動larbin了。

三、配置

上面方式啟動larbin會使用默認(rèn)配置文件larbin.conf,當(dāng)然也可以如下來指定配置文件:

  1. #./larbin -c conf_file 

larbin的配置是通過options.h和larbin.conf結(jié)合來完成的,前者修改后需要重新編譯,后者修改后只需要重啟即可。

在options.h中以下參數(shù)最好打開:

  1. #define SIMPLE_SAVE //簡單保存抓取頁面,存在save/dxxxxx/fyyyyy文件中,每個目錄下2000個文件  
  2. #define FOLLOW_LINKS //繼續(xù)抓取子鏈接  
  3. #define CGILEVEL 1 //是否獲得CGI  
  4. #define DEPTHBYSITE //進(jìn)入新的URL時是否初始化深度  
  5. #define RELOAD //設(shè)置此項(xiàng)時可以從上次終止處繼續(xù)爬取,使用-scratch 選項(xiàng)從上次結(jié)束處重啟  
  6. #define CRASH //用于報告嚴(yán)重的bugs用,以gmake debug模式編譯時使用 

配置完別忘了make。

在larbin.conf中以下參數(shù)最好打開:

  1. httpPort 8081 //用于查看爬行結(jié)果的web服務(wù)端口  
  2. inputPort 1976 //用于設(shè)置爬行url的telnet服務(wù)端口  
  3. pagesConnexions 100 //并行抓取網(wǎng)頁的連接數(shù)  
  4. dnsConnexions 5 //并行DNS解析的數(shù)量  
  5. depthInSite 5 //對一個站點(diǎn)的爬取深度  
  6. waitDuration 60 //訪問同一服務(wù)器的時間間隔,不可低于30s,建議60s  
  7. startUrl http://slashdot.org/ //起始抓取頁面 

關(guān)于配置的詳細(xì)可以參見這里

配置好就可以啟動服務(wù)開始抓取了。

關(guān)于起始抓取url除了可以設(shè)置外,還可以通過telnet localhost 1976來設(shè)置,在終端提示符下輸入:

  1. priority:1 depth:3 test:0  
  2. http://www.baidu.com 

這里把優(yōu)先級設(shè)為了1,保證你輸入的URL比一般的URL優(yōu)先被抓取,如果輸入了很多URL,把優(yōu)先級設(shè)為0,防止run out of memory。

depth指定抓取鏈接的深度,一般不要超過5。

test設(shè)為0表示如果一面網(wǎng)頁之前已經(jīng)抓取過了,并且現(xiàn)在又要抓取,那就抓取,test設(shè)為1可以防止重復(fù)的抓取。

這里設(shè)置的效果同larbin.conf中的startUrl。

四、使用

運(yùn)行:./larbin(或“nohup ./larbin &”,可使larbin在后臺運(yùn)行)

中止:Ctrl+C        

重啟:./larbin -scratch

注意停止larbin的時候不要用Ctrl+z,那樣當(dāng)你再次./larbin或者./larbin -scratch的時候,會出現(xiàn)端口已被占用,無法重新啟動。

另外,可通過http://localhost:8081來訪問larbin,從頁面上獲取一些關(guān)于larbin運(yùn)行的信息。

原文鏈接:http://blog.chinaunix.net/uid-22312037-id-4390559.html

責(zé)任編輯:牛小雨 來源: scq2099yt的博客
相關(guān)推薦

2014-08-13 11:04:02

搜索引擎排序算法

2010-08-02 16:08:39

ibmdwJava搜索引擎

2017-08-07 08:15:31

搜索引擎倒排

2020-03-20 10:14:49

搜索引擎倒排索引

2019-09-26 09:34:51

網(wǎng)絡(luò)爬蟲搜索引擎大數(shù)據(jù)

2011-06-20 18:23:06

SEO

2011-05-17 17:19:14

2009-05-06 14:35:17

搜索引擎PHP技術(shù)

2020-08-10 14:39:30

搜索引擎

2018-06-24 08:53:42

Tomcat理搜索引擎爬蟲

2010-04-07 09:25:00

2022-10-11 09:27:45

搜索引擎es索引

2022-10-08 09:13:18

搜索引擎?站

2012-09-07 13:22:21

搜索搜狗

2009-02-19 09:41:36

搜索引擎搜狐百度

2010-04-20 11:43:46

2009-09-22 16:23:52

搜索引擎

2009-07-30 10:40:56

搜索引擎優(yōu)化網(wǎng)站

2023-02-08 10:45:23

2010-06-13 16:27:28

搜索引擎
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號