nutch 插件 实例

package com.sg123.nutch.plugin.parse.html;

import java.util.Enumeration;
import java.util.Properties;

import org.apache.hadoop.conf.Configuration;
import org.apache.nutch.parse.HTMLMetaTags;
import org.apache.nutch.parse.HtmlParseFilter;
import org.apache.nutch.parse.ParseResult;
import org.apache.nutch.protocol.Content;
import org.w3c.dom.DocumentFragment;
/**
 * 提取name=“description”的Meta标签的“content”属性值
 * @author lvshow
 *
 */
public class Description implements HtmlParseFilter {//实现HtmlParseFilter接口

	
	@Override
	public ParseResult filter(Content content, ParseResult parseResult,
			HTMLMetaTags metaTags, DocumentFragment doc) {

		String description = null;

		Properties generalMetaTags = metaTags.getGeneralTags();

		for (Enumeration tagNames = generalMetaTags.propertyNames(); tagNames
				.hasMoreElements();) {
			if (tagNames.nextElement().toString().equalsIgnoreCase("description")) {
				description = generalMetaTags.getProperty("description");
				if(description==null){
					description = generalMetaTags.getProperty("Description");
				}
				System.out.println("找到了 " + description);
			}
		}

		if (description == null) {
			System.out.println("没有description标签");
		} else {
			System.out.println("添加description! " + description);
			//parseResult中的Map的key为Url,content的getUrl方法可以得到当前的url
			parseResult.get(content.getUrl()).getData().getParseMeta().set(
					"description", description);
		}

		return parseResult;
	}

	@Override
	public Configuration getConf() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void setConf(Configuration conf) {
		// TODO Auto-generated method stub

	}

}

以上为插件类

plugin.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<plugin
 id="description"
 name="description Parser/Filter"
 version="1.0.0"
 provider-name="nutch.org">
    
    <runtime>
        <library name="description.jar">
            <export name="*"/>
        </library>
    </runtime>
    
    
    <extension id="com.sg123.nutch.plugin.parse.html.descriptionfilter"
     name="description Parser"
     point="org.apache.nutch.parse.HtmlParseFilter">
        <implementation id="Description"
         class="com.sg123.nutch.plugin.parse.html.Description">
        </implementation>
    </extension>
    
</plugin>


把插件类编译打包

然后放入plugins目录


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值