国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Nutch 使用之鋒芒初試

2019-11-18 11:29:26
字體:
來源:轉載
供稿:網友

                                                 Nutch 使用之鋒芒初試
                           
  “工欲善其事,必先利其器。”經過前文的“細解”,我們已經完成了Nutch在Windows中的安裝。接下來就讓我們通過鋒芒初試,來親自體驗一下Nutch的強大功能吧!
   
  Nutch的爬蟲抓取網頁有兩種方式,一種方式是Intranet Crawling,針對的是企業內部網或少量網站,使用的是crawl命令;另一種方式是Whole-web crawling,針對的是整個互聯網,使用inject、generate、fetch和updatedb等更底層的命令。 本文將以使用Nutch為筆者在CSDN處的個人專欄(http://blog.csdn.net/zjzcl)文章內容建立搜索功能為例,來講述Intranet Crawling的基本使用方法(假設用戶電腦系統已安裝好JDK、Tomcat和Resin,并做過相應的環境配置)。
   
  1、設置Nutch的環境變量

  在Windows系統的環境變量設置中,增加NUTCH_java_HOME變量,并將其值設為JDK的安裝目錄。比如筆者電腦中JDK安裝于D:/j2sdk1.4.2_09,因此將NUTCH_JAVA_HOME的值設為D:/j2sdk1.4.2_09。
   
  2、Nutch抓取網站頁面前的預備工作

  (1)在Nutch的安裝目錄中建立一個名為url.txt的文本文件,文件中寫入要抓取網站的頂級網址,即要抓取的起始頁。筆者在此文件中寫入如下內容:
   
  http://blog.csdn.net/zjzcl
   
  (2)編輯conf/crawl-urlfilter.txt文件,修改MY.DOMAIN.NAME部分:
   
  # accept hosts in MY.DOMAIN.NAME
  +^http://blog.csdn.net/zjzcl
   
  3、運行Crawl命令抓取網站內容
   
  雙擊電腦桌面上的Cygwin圖標,在命令行窗口中輸入:
   
  cd /cygdrive/i/nutch-0.7.1
   
  不明白此命令含義的讀者請參見前《細解》一文,然后再輸入:
   
  bin/nutch crawl url.txt -dir crawled -depth 3 -threads 4 >& crawl.log
   
  等待大約2分多鐘后,程序運行結束。讀者會發現在nutch-0.7.1目錄下被創建了一個名為crawled的文件夾,同時還生成一個名為crawl.log的日志文件。利用這一日志文件,我們可以分析可能碰到的任何錯誤。另外,在上述命令的參數中,dir指定抓取內容所存放的目錄,depth表示以要抓取網站頂級網址為起點的爬行深度,threads指定并發的線程數。
   
  4、使用Tomcat進行搜索測試
   
  (1)將tomcat/webapps下的ROOT文件夾名改成ROOT1;
  (2)將nutch-0.7.1目錄的nutch-0.7.1.war復制到tomcat/webapps下,并將其改名為ROOT;
  (3)打開ROOT/WEB-INF/classes下的nutch-site.xml文件,修改成如下形式:
   
  <?xml version="1.0"?>
  <?xml-stylesheet type="text/xsl" href="nutch-conf.xsl"?>

  <!-- Put site-specific PRoperty overrides in this file. -->

  <nutch-conf>
   <property>
    <name>searcher.dir</name>
    <value>I:/nutch-0.7.1/crawled</value>
   </property>
  </nutch-conf>
  
  其中的“<value>I:/nutch-0.7.1/crawled</value>”部分,讀者應根據自己的設置進行相應修改。
  (4)啟動Tomcat,打開瀏覽器在地址欄中輸入:http://localhost:8080,如圖1所示:

Nutch 使用之鋒芒初試(圖一)

點擊查看大圖

    
  在文本框中輸入要害字,就可以進行搜索了。不過用戶在使用時會發現,對于英文單詞的搜索一切正常,而當要搜索中文詞語時會出現亂碼。其實這個問題是Tomcat設置的問題,解決辦法是修改tomcat/conf下的server.xml文件,將其中的Connector部分改成如下形式即可:
   
  <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true"
               URIEncoding="UTF-8" useBodyEncodingForURI="true" />
              
  現在我們可以對中文詞匯進行搜索了。如在搜索框中輸入“李開復”,點擊搜索按鈕后,會搜索到筆者之前寫的兩篇文章《從李開復換門庭開啟的縫隙中窺視——試探Google的幾招成功“秘訣”》與《從國內首例禽流感假疫苗大案說起——有感于李開復<做最好的自己>中的誠信觀》,如圖2所示:
   
Nutch 使用之鋒芒初試(圖二)
點擊查看大圖

   
  假如點擊show all hits按鈕,則會列出更多相關的搜索結果了。   
   
  5、使用Resin進行搜索測試
   
  由于筆者最近工作中經常使用Resin,因此在Tomcat上測試完畢后也想在Resin上測試一把,未曾想碰到了各種意想不到的情況。下面就將所碰到的問題以及解決方法列出,以供碰到相同問題的讀者參考。
   
  (1)將nutch-0.7.1目錄的nutch-0.7.1.war復制到resin-3.0.17/webapps下;
  (2)打開resin-3.0.17/conf下的resin.conf文件,把
   
  <!-- configures the default host, matching any host name -->
   
  下面的內容改成:
   
  <host id="" root-Directory=".">          
   <web-app id="/" document-directory="webapps/nutch-0.7.1"/>
   <stderr-log path='logs/stderr.log' rollover-period='1W'/>
   <stdout-log path='logs/stdout.log' rollover-period='1W'/>
  </host>
   
  (3)打開resin-3.0.17/webapps/nutch-0.7.1/WEB-INF/classes下的nutch-site.xml文件,修改成如下形式:
   
  <?xml version="1.0"?>
  <?xml-stylesheet type="text/xsl" href="nutch-conf.xsl"?>



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西乡县| 大兴区| 巨野县| 汨罗市| 深水埗区| 五家渠市| 临高县| 梁河县| 石景山区| 扎鲁特旗| 潜山县| 宁安市| 保康县| 那坡县| 延庆县| 循化| 平昌县| 赤水市| 福鼎市| 区。| 常熟市| 芦山县| 霍城县| 吉林市| 祁阳县| 富民县| 南涧| 楚雄市| 旬阳县| 特克斯县| 平遥县| 迭部县| 红原县| 仙桃市| 凤台县| 拜城县| 无极县| 岢岚县| 扎鲁特旗| 云林县| 磴口县|