最近在研究nutch,找到了關於使用底層命令進行全網爬行的資料。
首先獲得網址集,使用http://rdf.dmoz.org/rdf/ 目錄下的content.example.txt 文件做測試,建立文件夾dmoz
命令:bin/nutch org.apache.nutch.tools.DmozParser content.example.txt >dmoz/urls
注射網址到crawldb數據庫:
命令:bin/nutch inject crawl/crawldb dmoz
創建抓取列表:
命令:bin/nutch generate crawl/crawldb crawl/segments
把segments下的文件保存到變量s1中,供以後調用:
命令:s1=`ls -d crawl/segments/2* | tail -1`
命令:echo $s1
注`不是單引號,而是左上角跟~一個鍵位的那個
運行fetcher獲取這些url信息:
命令:bin/nutch fetch $s1
更新數據庫,把獲取的頁面信息存進數據庫中:
命令:bin/nutch updatedb crawl/crawldb $s1
第一次抓取結束。
接下來選擇分值排在前10的url來進行第二次和第三次抓取:
命令:bin/nutch generate crawl/crawldb crawl/segments -topN 10
命令:s2=`ls -d crawl/segments/2* | tail -1`
命令:echo $s2
命令:bin/nutch fetch $s2
命令:bin/nutch updatedb crawl/crawldb $s2
命令:bin/nutch generate crawl/crawldb crawl/segments -topN 10
命令:s3=`ls -d crawl/segments/2* | tail -1`
命令:echo $s3
命令:bin/nutch fetch $s3
命令:bin/nutch updatedb crawl/crawldb $s3
根據segments的內容更新linkdb數據庫:
命令:bin/nutch invertlinks crawl/linkdb crawl/segments/*
建立索引:
命令:bin/nutch index crawl/indexes crawl/crawldb crawl/linkdb crawl/segments/*
可以通過此命令進行查詢:
命令:bin/nutch org.apache.nutch.searcher.NutchBean faq 此處的faq代表所要搜索的關鍵詞