Nutch 使用入門(二)——互連網抓取
互連網QQ網路通訊協定搜尋引擎Gmail
Java代碼
- /**
- *本人亦初學者,如有不正確的地方請多多指教。謝謝!
- **/
Nutch互連網抓取
1. 下載列表擷取
真正實現全互連網資料抓取需要一個比較大的入口URL列表,幸運的是Nutch在設計時考慮到了這個問題。通過DmozPraser工具提供了對開放式互連網DMOZ目錄庫的支援。DMOZ目錄庫可以直接從網上下載使用,目前最新版的資料壓縮檔content.rdf.u8.gz有295MB,解壓縮後達到1.91GB。使用DmozPraser工具可以從檔案中隨機抽取部分資料,組建檔案列表,詳細操作命令如下所示:
Java代碼
- bin/nutch org.apache.tools.DomzPraser content.rdf.u8 -subset 3000 >domzurls.txt
命令執行的結果是Nutch根目錄下產生了一個dmozurls.txt的文字檔。該檔案可以作為入口地址添加到下載庫中。如果要建立全互連網的搜尋引擎,可以把content.rdf.u8中的所有資料添加到下載庫。下載全網資料是一項費時費力的工作,且超過了個人實驗的範圍,而且dmozurls文字檔中包含了很多國外的網站,我們訪問比較慢。所有我們將採取另外一種辦法。
另外一種辦法是尋找國內比較大的互連網網站。這些網站的URL是通過分析http://top.chinalabs.com/,http://top.chinaz.com/,http://www.chinarank.org.cn/三大中國互連網排行網站獲得。應該說可以具有代表性。分析的原理和過程在此不作贅述。得到一個chinaurls.txt的文本。部分結果如下:
Java代碼
- http://www.baidu.com
- http://www.qq.com
- http://www.google.cn
- http://www.sina.com.cn
- http://www.163.com
- http://www.taobao.com
- http://www.soso.com
- http://www.sohu.com
- http://www.youku.com
- http://www.tianya.cn
- http://www.hao123.com
- http://www.kaixin001.com
- http://www.alibaba.com
- http://www.sogou.com
- http://www.ifeng.com
- http://www.cnzz.com
- http://www.chinaz.com
- http://www.xunlei.com
- http://www.soufun.com
- http://www.126.com
2. 下載大量網站
入口URL列表準備好之後,下一步的工作就是匯入Nutch系統,完成下載工作,具體過程如下:
1)開啟Nutch的根目錄,建立一個InternetWeb和urls目錄
2)複製chinaurls.txt檔案到Nutch的根目錄下的urls目錄。利用檔案內容向InternetWeb目錄資料庫裡面添加初始的入口URL,命令及執行結果如下:
3) 修改Nutch根目錄下conf/nutch-site.xml檔案,設定http.agent.name屬性的值。這個屬性值在抓取網頁的時候,會攜帶於HTTP請求的協議頭裡面,用來表明網路蜘蛛身份,修改內容如下。
4) 利用craswdb中已經注入的URL下載列表,調用generate命令建立一個新的資料區段,存放在InternetWeb目錄下。命令及執行結果如下:
5) 查看segments目錄下最新產生的以日期時間命名的檔案夾。當前產生的檔案夾的名稱是20100325211446.接下來根據檔案夾下產生的下載列表擷取頁面的內容。命令如下:
6) 從已經下載的段資料列表裡擷取URL連結,更新crawldb庫裡的內容。命令及執行過程如下:
7) 迴圈執行(4),(5),(6)下載頁面,直到crawldb的列表完成或者達到網頁深度。此處的深度控制需要通過迴圈次數控制。
8) 調用invertlinks命令建立所有的連結。
9) 索引頁面內容。命令如下:
這樣,一個簡化的互連網資料已經下載完成了。
接下來我們又可以進行搜尋了。
Nutch搜尋網頁面的部署可以參見
Nutch1.0 使用入門(一)。
謝謝關注,我會有更多這方面文章的發布。