導航:首頁 > 程序命令 > nutch命令

nutch命令

發布時間:2022-05-03 05:14:45

1. nutch怎麼才能抓取到動態的url

修改crawl-urlfilter的過濾規則,

# The url filter file used by the crawl command.

# Better for intranet crawling.
# Be sure to change MY.DOMAIN.NAME to your domain name.

# Each non-comment, non-blank line contains a regular expression
# prefixed by '+' or '-'. The first matching pattern in the file
# determines whether a URL is included or ignored. If no pattern
# matches, the URL is ignored.

# skip file:, ftp:, & mailto: urls
-^(file|ftp|mailto):

# skip image and other suffixes we can't yet parse
-\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$

# skip URLs containing certain characters as probable queries, etc.
-[?*!@=] //表示過濾包含指定字元的URL,改為: -[~]

# skip URLs with slash-delimited segment that repeats 3+ times, to break loops
-.*(/.+?)/.*?\1/.*?\1/

# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*tianya.cn/[\s\S]* // 過濾正則表達式,([a-z0-9]*\.)*表示任意數字和字母,[\s\S]*表示任意字元
# skip everything else
-.

Nutch爬蟲設置

Nutch本身包含一個對目標站點進行索引的爬蟲和一個提供搜索用的web界面。在查詢界面可以使用前需要先設置Nutch爬蟲對目標站點進行抓取。
部分配置文件的解釋:

* nutch\conf\nutch-default.xml
o 設置http.agent.name,如果http.agent.name為空,爬蟲將無法正常啟動。這里可以設置任意你喜歡的名字,比如設置為vik-robot。
o indexer.mergeFactor/indexer.minMergeDocs 這兩個值都改成500。這兩個參數值越大,性能越高,所需要花費的內存也需要相應的增加。如果設置過大,可能出現內存溢出。就實際使用情況,在當前參數下,內存的最大使用量為3xxM。
o

http.timeout表示最大超時等待時間,如果訪問的連接長時間沒有反應將丟棄。
o db.max.outlinks.per.page該參數表示單個頁面最多支持多少個外連的連接,如果過多將不抓取。 如果是自己的內部系統那就設置一個任意大的數吧。
o nutch-default.xml 解讀
*

創建文件nutch\urls,並填入爬蟲的起始url。比如:

http://mysite.com/

*

nutch\conf\crawl-urlfilter.txt 該文件用於設置需要索引的url的過濾關系。每行一個過濾條件,-表示不包含該url,+表示包含。
o [?*!@=],該行表示對所有動態url都不抓取。 現在的大部分系統都會有很多動態url,該過濾條件很可能使你抓不到任何內容。
o

針對各系統分別設置url的過濾關系。具體的設置方法得根據各自應用系統的不同而不同,這里以廣為流行的論壇discuz為例。在這url過濾將只抓取板塊列表和帖子內容。

# skip file:, ftp:, & mailto: urls
-^(file|ftp|mailto):

# skip image and other suffixes we can't yet parse
-\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$

# skip URLs containing certain characters as probable queries, etc.
#-[?*!@=]

# skip URLs with slash-delimited segment that repeats 3+ times, to break loops
-.*(/.+?)/.*?\1/.*?\1/

# accept hosts in MY.DOMAIN.NAME
#+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
#discuz
+^http://mysite.com/discuz/index.php$
+^http://mysite.com/discuz/forumdisplay.php\?fid=\d+$
+^http://mysite.com/discuz/forumdisplay.php\?fid=\d+&page=\d+$
+^http://mysite.com/discuz/viewthread.php\?tid=\d+&extra=page%3D\d+$
+^http://mysite.com/discuz/viewthread.php\?tid=\d+&extra=page%3D\d+&page=\d+$
# skip everything else
-.

* nutch\conf\regex-urlfilter.txt 我不清楚該配置文件是否有起作用,但建議注釋掉其中的,-[?*!@=]。

執行爬蟲

*

由於Nutch的腳本採用的是linux下是shell,在windows下需要使用cygwin來執行。至於cygwin的具體使用...,這個到網上找其他文章吧。cygwin官網

*

進入Nutch目錄後執行命令 sh bin/nutch crawl urls -dir crawl -threads 2 -depth 100 -topN 1000000 >& crawl.log 完成網站的抓取和索引。
o threads 抓取網頁的線程數,理論上線程數越多速度越快,但過多的線程會給伺服器帶來比較大的負擔,影響正常使用。
o depth 頁面的抓取深度。
o topN 每層最多抓取的頁面數
o crawl.log 日誌存放文件

2. 如何讓nutch從新爬取數據

改URL 不是在N-S.XML裡面
你定義的那個urls 和conf 裡面的crawl-urlfilter.txt
如果你是在linux下面的話,從新爬不改索引庫位置的話,會直接覆蓋原先的索引庫,在windows下的話,就需要改下索引庫位置或者是刪掉原先的索引庫了

3. 如何調試nutch

Nutch默認只給用戶提供一種是用方法就是用一個cygwin的模擬器去模擬一個的環境,然後用戶去用命令行在cygwin中執行搜索,還有就是當開發者把nutch的源代碼導入到eclipse的工程目錄下然後執行
org.apache.nutch.crawl.Crawl類的main()這兩種方法只是適合程序員做調試的時候手動開啟,所以在二次開發nutch的時候就要把crawl放到在jsp中去調用,
步驟
1:新建一個web工程,把nutch源代碼中plugins文件夾下的目錄復制到src下,把nutch下src/java 中的這些包復制src下
2:把nutch中conf文件夾的所有配置文件復制到src目錄下,把nutch中nutch.job文件復制到src下邊
3 把nutch中lib文件夾的jar文件復制到web-inf的lib下
4 重新在src下建立一個類,用這個類去調用crawl的main()
package valley.test;import org.apache.nutch.crawl.Crawl;public class test {public static void main(String[] args) {String []arg ={「url.txt」,「-dir」,「crawled」,「-depth」,「10」,「-topN」,「50」};try {Crawl.main(arg);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
3 接下來就可以在jsp中去調用這個test類了,一般在調用的時候都會出現一個異常-Xms100m -Xmx800m 異常代碼如下Injector

4. 我在windows下面安裝了cygwin和nutch0.9但是bin/nutch命令顯示的內容裡面怎麼 沒有admin命令啊

需要用將環境變數配置一下,好像用 import $PATH=$PATH;/bin;/sbin;/usr/bin;/usr/sbin
把用到的命令加入。

5. 如何自定義nutch htmlparse插件

在conf/nutch-site.xml加入http.agent.name的屬性
生成一個種子文件夾,mkdir -p urls,在其中生成一個種子文件,在這個文件中寫入一個url,如http://nutch.apache.org/
編輯conf/regex-urlfilter.txt文件,配置url過濾器,一般用默認的好了,也可以加入如下配置,只抓取nutch.apache.org這個網址 +^http://([a-z0-9]*.)*nutch.apache.org/
使用如下命令來抓取網頁
bin/nutch crawl urls -dir crawl -depth 3 -topN 5 說明: -dir 抓取結果目錄名 -depth 抓取的深度 -topN 最一層的最大抓取個數 一般抓取完成後會看到如下的目錄 crawl/crawldb crawl/linkdb crawl/segments
使用如下來建立索引
bin/nutch solrindex http://127.0.0.1:8983/solr/ crawldb -linkdb crawldb/linkdb crawldb/segments/* 使用這個命令的前提是你已經開啟了默認的solr服務 開啟默認solr服務的命令如下 cd ${APACHE_SOLR_HOME}/example java -jar start.jar 這個時候服務就開啟了 你可以在瀏覽器中輸入如下地址進行測試 http://localhost:8983/solr/admin/ http://localhost:8983/solr/admin/stats.jsp
但是要結合Nutch來使用solr,還要在solr中加一個相應的策略配置,在nutch的conf目錄中有一個默認的配置,把它復制到solr的相應目錄中就可以使用了 cp ${NUTCH_RUNTIME_HOME}/conf/schema.xml ${APACHE_SOLR_HOME}/example/solr/conf/ 這個時候要重新啟動一下solr
索引建立完成以後就你就可以用關鍵詞進行查詢,solr默認返回的是一個xml文件

6. 在win7上搭建nutch環境,jdk,eclipse,tomcat,環境已經配置好,cygwin安裝後用bin/nutch成功,如圖一

bin/nutch前面加上./

7. 為什麼會沒有「crawl」的命令

bin/nutch crawl urls -dir crawl -depth 3 -topN5
就你這條命令來看:
1、需要cygwin進入nutch的目錄即nutch home,才有bin/nutch命令
2、urls必須是在nutch home下?另外urls是文件還是文件夾,如果是文件夾,裡面有例如url.txt之類的文件沒有
3、-dir crawl中的crawl是一個文件夾,在nutch home下,你有創建沒?
4、不知道你的截屏是否完整,如果不是完整的,後面有&> crawl/crawl.log之類的,這是將log記錄到指定的這個crawl/crawl.log中,是否在nutch home下有類似crawl/crawl.log的存在。 【如果是完整的,則log直接列印在cygwin中,這條可以忽視】

8. 如何把nutch爬取的網頁內容存寫到MongoDB

進入nutch的安裝目錄,運行命令:

bin/nutch readseg -mp db/segments/20090525140014 segdb -nocontent -nofetch -nogenerate -noparse -noparsedata

db/segments/20090525140014為一個segments文件夾,segdb為存放轉換後的內容的文件夾。

9. 一分鍾了解互聯網數據挖掘流程

一分鍾了解互聯網數據挖掘流程

1、爬蟲抓取網路數據

真實的數據挖掘項目,一定是從獲取數據開始的,除了通過一些渠道購買或者下載專業數據外,常常需要大家自己動手爬互聯網數據,這個時候,爬蟲就顯得格外重要了。

Nutch爬蟲的主要作用是從網路上抓取網頁數據並建立索引。我們只需指定網站的頂級網址,如taobao.com,爬蟲可以自動探測出頁面內容里新的網址,從而進一步抓取鏈接網頁數據。nutch支持把抓取的數據轉化成文本,如(PDF、WORD、EXCEL、HTML、XML等形式)轉換成純文字字元。

Nutch與Hadoop集成,可以將下載的數據保存到hdfs,用於後續離線分析。使用步驟為:

向hdfs中存入待抓取的網站url

$ hadoop fs -put urldir urldir

註:

第一個urldir為本地文件夾,存放了url數據文件,每行一個url地址

第二個urldir為hdfs的存儲路徑。

啟動nutch,在NUTCH_HONE目錄下執行以下命令

$ bin/nutch crawlurldir –dir crawl -depth 3 –topN 10

命令成功執行後,會在hdfs中生成crawl目錄。

2、MapRece預處理數據

對於下載的原始文本文檔,無法直接進行處理,需要對文本內容進行預處理,包括文檔切分、文本分詞、去停用詞(包括標點、數字、單字和其它一些無意義的詞)、文本特徵提取、詞頻統計、文本向量化等操作。

常用的文本預處理演算法是TF-IDF,其主要思想是,如果某個詞或短語在一篇文章中出現的頻率高,並且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來做分類。

輸入原始文本內容:

Againit seems that cocoa delivered……

執行TF-IDF預處理:

hadoop jar $JAR ……

輸出文本向量:

9219:0.246 453:0.098 10322:0.21 11947:0.272 ……

每一列是詞及其權重,使用冒號分隔,例如「9219:0.246」表示編號為9219的詞,對應原始單詞為「Again」,其權重值為0.246。

3、Mahout數據挖掘

預處理後的數據就可以用來做數據挖掘。Mahout是一個很強大的數據挖掘工具,是分布式機器學習演算法的集合,包括:協同過濾、分類、聚類等。

以LDA演算法為例,它可以將文檔集中每篇文檔的主題按照概率分布的形式給出。它是一種無監督學習演算法,在訓練時不需要手工標注主題,需要的僅僅是指定主題的數量K。此外LDA的另一個優點則是,對於每一個主題均可找出一些詞語來描述它。

輸入預處理後的數據:

9219:0.246 453:0.098 ……

執行LDA挖掘演算法:

mahout cvb –k 20……

輸出挖掘結果:

topic1 {computer,technology,system,internet,machine}

topic2 {play,film,movie,star,director,proction,stage}

我們可以獲知用戶的偏好是哪些主題,這些主題是由一些關鍵片語成。

4、Sqoop導出到關系資料庫

在某些場景下,需要把數據挖掘的結果導出到關系資料庫,用於及時響應外部應用查詢。

sqoop是一個用來把hadoop和關系型資料庫中的數據相互轉移的工具,可以將一個關系型資料庫(例如:MySQL ,Oracle 等)中的數據導入到hadoop的hdfs中,也可以將hdfs的數據導出到關系型資料庫中:

sqoop export –connect jdbc:mysql://localhost:3306/zxtest –username root–password root –table result_test –export-dir /user/mr/lda/out

export操作實現把hdfs目錄/user/mr/lda/out下數據導出到mysql的result_test表。

10. 關於nutch的問題:我從別人那裡直接拷過來的一個包,解壓後如圖:

1在cygwin下的哪個目錄出錯的?
你ls / 一下, 看看windows硬碟被掛載到哪個目錄了。

2 不明白你問的問題, eclipse只是編譯環境,應該沒什麼關系吧

閱讀全文

與nutch命令相關的資料

熱點內容
程序員電腦支持手寫 瀏覽:414
解壓頭戴式耳機推薦 瀏覽:344
紙條app上怎麼樣看對方主頁 瀏覽:883
編譯英語單詞怎麼寫 瀏覽:249
編譯原理和匯編原理的區別 瀏覽:864
如何給加密的pdf解密 瀏覽:770
華為盒子時間同步伺服器地址 瀏覽:95
python處理excel亂碼 瀏覽:391
mysql的命令行 瀏覽:822
jpeg採用什麼演算法 瀏覽:700
程序員紅軸薄膜 瀏覽:306
洗臉盆壓縮 瀏覽:780
dpd是什麼演算法 瀏覽:156
加密技術中的密鑰 瀏覽:962
qq企業郵箱本地客戶端伺服器地址 瀏覽:751
排序演算法框架 瀏覽:852
馬扎克qtn編程說明書下載 瀏覽:188
程序員在國外年齡 瀏覽:376
51單片機ad數碼管 瀏覽:738
安卓怎麼強制重新啟動 瀏覽:514