このサンプルでは、(IAS\<version>\sample\custom-web-crawler-plugin\srcディレクトリにある)HTMLMetatagFilter.javaソース・ファイル内のHTMLMetatagFilterクラスのソースを使用します。独自のプラグインを書き込んでいた場合は、カスタム・プラグインのコードが書き込まれています。
package com.endeca.eidi.web.parse; import java.util.Map; import java.util.Properties; import org.apache.hadoop.conf.Configuration; import org.apache.nutch.parse.HTMLMetaTags; import org.apache.nutch.parse.Parse; import org.apache.nutch.parse.ParseData; import org.apache.nutch.parse.ParseFilter; import org.apache.nutch.protocol.Content; public class HTMLMetatagFilter implements ParseFilter { public static String METATAG_PROPERTY_NAME_PREFIX = "Endeca.Document.HTML.MetaTag."; public Parse filter(Content content, Parse parse) throws Exception { parse.getData().getParseMeta().add("FILTER-HTMLMETATAG", "ACTIVE"); ParseData parseData = parse.getData(); if (parseData == null) return parse; HTMLMetaTags tags = parse.getData().getMetaTag(); if (tags == null) return parse; Properties tagProperties = tags.getGeneralTags(); for (Map.Entry<Object,Object> entry : tagProperties.entrySet()) { parse.getData().getParseMeta().add(METATAG_PROPERTY_NAME_PREFIX + (String)entry.getKey(), (String)entry.getValue()); } return parse; } public Configuration getConf() { return null; } public void setConf(Configuration conf) { } }
parse.getData().getParseMeta().add("FILTER-HTMLMETATAG", "ACTIVE");
ParseData parseData = parse.getData(); if (parseData == null) return parse;
HTMLMetaTags tags = parse.getData().getMetaTag(); if (tags == null) return parse;
Properties tagProperties = tags.getGeneralTags();
for (Map.Entry<Object,Object> entry : tagProperties.entrySet()) { parse.getData().getParseMeta().add(METATAG_PROPERTY_NAME_PREFIX + (String)entry.getKey(), (String)entry.getValue()); }