nutch 插件 实例2

  1. package com.sg123.nutch.plugin.parse.html;  
  2.   
  3. import java.util.Enumeration;  
  4. import java.util.Properties;  
  5.   
  6. import org.apache.hadoop.conf.Configuration;  
  7. import org.apache.nutch.parse.HTMLMetaTags;  
  8. import org.apache.nutch.parse.HtmlParseFilter;  
  9. import org.apache.nutch.parse.ParseResult;  
  10. import org.apache.nutch.protocol.Content;  
  11. import org.w3c.dom.DocumentFragment;  
  12. /** 
  13.  * 提取name=“description”的Meta标签的“content”属性值 
  14.  * @author lvshow 
  15.  * 
  16.  */  
  17. public class Description implements HtmlParseFilter {//实现HtmlParseFilter接口  
  18.   
  19.       
  20.     @Override  
  21.     public ParseResult filter(Content content, ParseResult parseResult,  
  22.             HTMLMetaTags metaTags, DocumentFragment doc) {  
  23.   
  24.         String description = null;  
  25.   
  26.         Properties generalMetaTags = metaTags.getGeneralTags();  
  27.   
  28.         for (Enumeration tagNames = generalMetaTags.propertyNames(); tagNames  
  29.                 .hasMoreElements();) {  
  30.             if (tagNames.nextElement().toString().equalsIgnoreCase("description")) {  
  31.                 description = generalMetaTags.getProperty("description");  
  32.                 if(description==null){  
  33.                     description = generalMetaTags.getProperty("Description");  
  34.                 }  
  35.                 System.out.println("找到了 " + description);  
  36.             }  
  37.         }  
  38.   
  39.         if (description == null) {  
  40.             System.out.println("没有description标签");  
  41.         } else {  
  42.             System.out.println("添加description! " + description);  
  43.             //parseResult中的Map的key为Url,content的getUrl方法可以得到当前的url  
  44.             parseResult.get(content.getUrl()).getData().getParseMeta().set(  
  45.                     "description", description);  
  46.         }  
  47.   
  48.         return parseResult;  
  49.     }  
  50.   
  51.     @Override  
  52.     public Configuration getConf() {  
  53.         // TODO Auto-generated method stub  
  54.         return null;  
  55.     }  
  56.   
  57.     @Override  
  58.     public void setConf(Configuration conf) {  
  59.         // TODO Auto-generated method stub  
  60.   
  61.     }  
  62.   
  63. }  

以上为插件类

plugin.xml如下:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <plugin  
  3.  id="description"  
  4.  name="description Parser/Filter"  
  5.  version="1.0.0"  
  6.  provider-name="nutch.org">  
  7.       
  8.     <runtime>  
  9.         <library name="description.jar">  
  10.             <export name="*"/>  
  11.         </library>  
  12.     </runtime>  
  13.       
  14.       
  15.     <extension id="com.sg123.nutch.plugin.parse.html.descriptionfilter"  
  16.      name="description Parser"  
  17.      point="org.apache.nutch.parse.HtmlParseFilter">  
  18.         <implementation id="Description"  
  19.          class="com.sg123.nutch.plugin.parse.html.Description">  
  20.         </implementation>  
  21.     </extension>  
  22.       
  23. </plugin>  


把插件类编译打包

然后放入plugins目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值