现在的位置: 首页 > 综合 > 正文

heritrix总结—定制FrontierScheduler

2014年08月22日 ⁄ 综合 ⁄ 共 968字 ⁄ 字号 评论关闭

Heritrix扩展有两种方式:一种是重写FrontierScheduler;一种是重写Extractor;今天讲第一种。

它的作用是在后处理时踢出一些不满足条件的url,直接上代码

package org.VOD.Video;

import org.archive.crawler.datamodel.CandidateURI;
import org.archive.crawler.postprocessor.FrontierScheduler;

public class FrontierSchedulerForKuwo extends FrontierScheduler {
	private final String URLRULE = "(http://www.kuwo.cn/mingxing/.+)" +
									"|(http://yinyue.kuwo.cn/yy/.*)" +
									"|(http://fang.kuwo.cn.*)" +
									"|(http://yinyue.kuwo.cn/artist-.*)" +
									"|(http://www.kuwo.cn/yinyue/\\d.*)";
	private static final long serialVersionUID = -409020617017309961L;

	public FrontierSchedulerForKuwo(String name) {
		super(name);
	}
	
	protected void schedule(CandidateURI caUri) 
    {
        String url=caUri.toString();     

        if( isMatchedURL( url ) || url.indexOf( "dns" ) >= 0 ) {
        	this.getController().getFrontier().schedule(caUri);
        }
        else {
        	return;
        }

    }
	
	public boolean isMatchedURL( String url ) {
		if ( url.matches( URLRULE)  ) {
			return true;
		}
		else {
			return false;
		}
	}
}

当然还需要修改conf/modules下的Processor.options文件,加入org.VOD.Video.FrontierSchedulerForKuwo|FrontierSchedulerForKuwo

抱歉!评论已关闭.