Crawl為Nutch提供的用于一站式抓取的命令,用戶只需要執行一條命令就可以完成抓取的全過程。
進入Nutch的主目錄,今后我們大部分執行命令的操作都是在Nutch主目錄完成的,而不是在Nutch的bin目錄里,因為這樣可以更方便地執行一些復雜的命令。查看一站式抓取命令:
~~~
bin/crawl
~~~
查看nutch命令:
~~~
bin/nutch
~~~
輸入以上兩個命令顯示了它們各自的使用方法,后文會詳細講解一部分常用的命令。
查看crawl的使用方法:
~~~
bin/crawl
Usage:?crawl?[-i|--index]?[-D?"key=value"]?<Seed?Dir>?<Crawl?Dir>?<Num?Rounds>
-i|--indexIndexes?crawl?results?into?a?configured?indexer
-DA?Java?property?to?pass?to?Nutch?calls
Seed?DirDirectory?in?which?to?look?for?a?seeds?file
Crawl?DirDirectory?where?the?crawl/link/segments?dirs?are?saved
Num?RoundsThe?number?of?rounds?to?run?this?crawl?for
~~~
-i|index用于告知nutch將抓取的結果添加到配置的索引器中。
-D用于配置傳遞給Nutch調用的參數,我們可以將索引器配置到這里。
Seed Dir種子文件目錄,用于存放種子URL,即爬蟲初始抓取的URL。
Crawl Dir抓取數據的存放路徑。
Num Rounds循環抓取次數
使用示例:
進入Nutch的runtime/local目錄,新建一個urls文件夾:
~~~
cd?apache-nutch-1.10/runtime/local
mkdir?urls
~~~
在urls文件夾中新建一個存放url的種子文件:
~~~
touch?urls/seed.txt
~~~
向urls/seed.txt添加初始抓取的URL:
~~~
echo?http://www.163.com?>>?urls/seed.txt
~~~
開始抓取網頁(這里需確保Solr已經啟動,否則不能正常在Solr中建立索引,安裝和配置參考[Nutch 1.10入門教程(三)——Solr安裝與配置](http://www.sanesee.com/article/step-by-step-nutch-solr-settings "Nutch 1.10入門教程(三)——Solr安裝與配置")):
~~~
bin/crawl?-i?-D?solr.server.url=http://localhost:8983/solr/?urls/?TestCrawl/??2
~~~
這條命令中,-i告知爬蟲將抓取的內容添加到給定的索引中,solr.server.url=http://localhost:8983/solr/是Solr索引器的地址,urls/為種子URL文件路徑,TestCrawl為Nutch用于存儲抓取數據的文件夾(包含URL、抓取的內容等數據),這里的參數2表示循環抓取兩次。
通過執行上面一條命令,就可以開始抓取網頁了。
在瀏覽器中輸入http://:8983/solr,選擇collection1,就可以在里面通過關鍵字搜索到已經建立索引的內容。這里需要注意的是,爬蟲并沒有將指定URL的全部頁面抓取下來,查看抓取情況的具體方法請參考后續教程。