1. 程式人生 > >nutch外掛配置

nutch外掛配置

1. 介紹

參考官方文件 參考楊尚川的部落格,我補充些可能遇到的問題

2. 外掛組成

2.1 java原始檔 根據楊尚川部落格修改,然後引入幾個包
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
2.2 plugin.xml 告訴Nutch這個外掛的一些資訊
<plugin
   id="parse-jsoup"
   name="Html Parse Plug-in"
   version="1.0.0"
   provider-name="nutch.org">
   <runtime>
      <library name="parse-jsoup.jar">
         <export name="*"/>
      </library>
      <library name="tagsoup-1.2.1.jar"/>
      
        <library name="jsoup-1.7.3.jar"/>
   </runtime>
   <requires>
      <import plugin="nutch-extensionpoints"/>
   </requires>
   <extension id="org.apache.nutch.parse.html"
              name="HtmlParse"
              point="org.apache.nutch.parse.Parser">
      <implementation id="org.apache.nutch.parse.html.HtmlParser"
                      class="org.apache.nutch.parse.html.HtmlParser">
        <parameter name="contentType" value="text/html|application/xhtml+xml"/>
        <parameter name="pathSuffix" value=""/>
      </implementation>
   </extension>
</plugin>
2.3 build.xml ant編譯外掛
<project name="parse-jsoup" default="jar-core">
  <import file="../build-plugin.xml"/>
  <!-- Build compilation dependencies -->
  <target name="deps-jar">
  </target>
  <!-- Add compilation dependencies to classpath -->
  <path id="plugin.deps">
    <fileset dir="${nutch.root}/build">
    </fileset>
  </path>
  <!-- Deploy Unit test dependencies -->
  <target name="deps-test">
    <ant target="deploy" inheritall="false" dir="../nutch-extensionpoints"/>
  </target>
</project>
2.4 ivy.xml 外掛依賴管理
<ivy-module version="1.0">
  <info organisation="org.apache.nutch" module="${ant.project.name}">
    <license name="Apache 2.0"/>
    <ivyauthor name="Apache Nutch Team" url="http://nutch.apache.org"/>
    <description>
        Apache Nutch
    </description>
  </info>
  <configurations>
    <include file="../../../ivy/ivy-configurations.xml"/>
  </configurations>
  <publications>
    <!--get the artifact from our module name-->
    <artifact conf="master"/>
  </publications>
  <dependencies>
   <dependency org="org.ccil.cowan.tagsoup" name="tagsoup" rev="1.2.1"/>
   <dependency  org="org.jsoup"  name="jsoup"  rev="1.7.3"/>
  </dependencies>
</ivy-module>

具體配置可以看官方文件,也可以看其他外掛是怎麼配的。

3. 修改nutch-site.xml檔案,把外掛加入

    <property>
      <name>plugin.includes</name>
      <value>protocol-http|urlfilter-regex|parse-(html|tika)|index-(basic|anchor)|indexer-solr|scoring-opic|urlnormalizer-(pass|regex|basic)|parse-jsoup</value>
    </property>

4. 修改plugin/build.xml,新增你的外掛

<ant dir="parse-jsoup" target="deploy"/>
<ant dir="parse-jsoup" target="test"/>
<ant dir="parse-jsoup" target="clean"/>

5. 修改parse-plugins.xml

    <mimeType name="text/html">
        <plugin id="parse-jsoup" />
    </mimeType>

<alias name="parse-jsoup"
       extension-id="org.apache.nutch.parse.html.HtmlParser" />
以前預設是parse-html 6. 重新ant編譯,然後新增在class中新增外掛,注意選擇src/plugin/parse-jsoup/src/java目錄,這樣包名不會有錯誤,並在lib中新增 tagsoup-1.2.1.jar nekohtml.jar jsoup-1.7.3.jar 現在你就可以執行crawl,看看結果吧 "content":"由我發起的JAVA開源專案:#APDPlat#應用級產品開發平臺當選為#2013年度優秀開源專案#,在#第八屆開源中國開源世界高峰論壇#上接受頒獎。\n\n雙高證書(系統架構設計師、系統分析師)\n\n“分詞”是語言理解的“前提”嗎? - 楊尚川的部落格 - ITeye技術網站 http://url.cn/Ly2FJv\n\nAPDPlat中的使用者密碼安全策略 - 楊尚川的部落格 - ITeye技術網站 http://url.cn/OPCBjG\n\nNutch1.7二次開發培訓講義 之 騰訊微博抓取分析 - 楊尚川的部落格 - ITeye技術網站 http://url.cn/Q6wxZ4\n\nNutch1.7二次開發培訓講義 - 楊尚川的部落格 - ITeye技術網站 http://url.cn/KaVgnE\n\n【機器學習視訊教程】“機器學習”是當今的大熱門,“人工智慧”、“大資料”等當今熱門領域都離不開“機器學習”,給大家推薦一套非常棒的機器學習視訊教程(總時長15個半小時,講中文哦) (分享自 @QQ空間) http://url.cn/UNMwmK\n\nnew一個Object物件佔用多少記憶體? - 楊尚川的部落格 - ITeye技術網站 http://url.cn/JgVRtw\n\n編寫正確的程式往往比一般人想象的難度要大的多,很多時候,程式是碰巧能執行,尤其是在多執行緒的情況下。\n\nJAVA呼叫CSDN介面發博文 - 楊尚川的部落格 - ITeye技術網站 http://url.cn/QQFTvw\n\nCSDN部落格飆升祕籍 - 楊尚川的個人頁面 - 開源中國社群: 網際網路時代,攻防是永恆的主題。為了獲得使用者眼球,搶佔各類排行榜是一種行之有效的方法。本文介紹了一種CSDN部落格飆升祕籍,可在短短一天內超過別人數年的努力。 http://url.cn/Ip0kug\n\nAPDPlat中的機器碼生成機制 - 楊尚川的部落格 - ITeye技術網站 http://url.cn/T31V7e\n\nAPDPlat如何自動建庫建表並初始化資料? - 楊尚川的部落格 - ITeye技術網站 http://url.cn/TJq2R1\n\nAPDPlat的系統啟動和關閉流程剖析 - 楊尚川的部落格 - ITeye技術網站 http://url.cn/VK0qUy\n\nAPDPlat拓展搜尋之整合Solr - 楊尚川的部落格 - ITeye技術網站 http://url.cn/OqgbDq\n\nAPDPlat拓展搜尋之整合ElasticSearch - 楊尚川的部落格 - ITeye技術網站 http://url.cn/P9sSVF\n\nAPDPlat中備份檔案異地容災機制之FTP上傳 - 楊尚川的部落格 - ITeye技術網站 http://url.cn/QgveGd\n\n", "title":"楊尚川的微博_騰訊微博", "segment":"20140312152056", "boost":0.04689394, "digest":"0c8bed7e9776c890d778bbb705640967", "tstamp":"2014-03-12T07:21:54.426Z", "id":"http://t.qq.com/yang-shangchuan/?mode=0", "url":"http://t.qq.com/yang-shangchuan/?mode=0", "_version_":1462354646641148000