update name
parent
a3a868f584
commit
1a50c64e33
|
@ -14,11 +14,12 @@ import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 基于PageProcessor的扩展点。<br>
|
||||||
* @author code4crafter@gmail.com <br>
|
* @author code4crafter@gmail.com <br>
|
||||||
* @date: 13-8-1 <br>
|
* @date: 13-8-1 <br>
|
||||||
* Time: 下午8:46 <br>
|
* Time: 下午8:46 <br>
|
||||||
*/
|
*/
|
||||||
public class ModelPageProcessor implements PageProcessor {
|
class ModelPageProcessor implements PageProcessor {
|
||||||
|
|
||||||
private List<PageModelExtractor> pageModelExtractorList = new ArrayList<PageModelExtractor>();
|
private List<PageModelExtractor> pageModelExtractorList = new ArrayList<PageModelExtractor>();
|
||||||
|
|
||||||
|
|
|
@ -10,11 +10,12 @@ import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 基于Pipeline的扩展点。<br>
|
||||||
* @author code4crafter@gmail.com <br>
|
* @author code4crafter@gmail.com <br>
|
||||||
* @date: 13-8-2 <br>
|
* @date: 13-8-2 <br>
|
||||||
* Time: 上午10:47 <br>
|
* Time: 上午10:47 <br>
|
||||||
*/
|
*/
|
||||||
public class ModelPipeline implements Pipeline {
|
class ModelPipeline implements Pipeline {
|
||||||
|
|
||||||
private Map<Class, PageModelPipeline> pageModelPipelines = new ConcurrentHashMap<Class, PageModelPipeline>();
|
private Map<Class, PageModelPipeline> pageModelPipelines = new ConcurrentHashMap<Class, PageModelPipeline>();
|
||||||
|
|
||||||
|
|
|
@ -4,17 +4,13 @@ import us.codecraft.webmagic.Site;
|
||||||
import us.codecraft.webmagic.Spider;
|
import us.codecraft.webmagic.Spider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 基于Model的Spider,封装后的入口类。<br>
|
||||||
* @author code4crafter@gmail.com <br>
|
* @author code4crafter@gmail.com <br>
|
||||||
* @date: 13-8-3 <br>
|
* @date: 13-8-3 <br>
|
||||||
* Time: 上午9:51 <br>
|
* Time: 上午9:51 <br>
|
||||||
*/
|
*/
|
||||||
public class OOSpider extends Spider {
|
public class OOSpider extends Spider {
|
||||||
|
|
||||||
/**
|
|
||||||
* OOSpider只能由ObjectPageProcessor创建。
|
|
||||||
*
|
|
||||||
* @param pageProcessor 已定义的抽取规则
|
|
||||||
*/
|
|
||||||
private ModelPageProcessor modelPageProcessor;
|
private ModelPageProcessor modelPageProcessor;
|
||||||
|
|
||||||
private ModelPipeline modelPipeline;
|
private ModelPipeline modelPipeline;
|
||||||
|
@ -24,6 +20,12 @@ public class OOSpider extends Spider {
|
||||||
this.modelPageProcessor = modelPageProcessor;
|
this.modelPageProcessor = modelPageProcessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建一个爬虫。<br>
|
||||||
|
* @param site
|
||||||
|
* @param pageModelPipeline
|
||||||
|
* @param pageModels
|
||||||
|
*/
|
||||||
public OOSpider(Site site, PageModelPipeline pageModelPipeline, Class... pageModels) {
|
public OOSpider(Site site, PageModelPipeline pageModelPipeline, Class... pageModels) {
|
||||||
this(ModelPageProcessor.create(site, pageModels));
|
this(ModelPageProcessor.create(site, pageModels));
|
||||||
this.modelPipeline = new ModelPipeline();
|
this.modelPipeline = new ModelPipeline();
|
||||||
|
|
|
@ -13,6 +13,7 @@ import java.util.List;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Model主要逻辑类。将一个带注解的POJO转换为一个PageModelExtractor。<br>
|
||||||
* @author code4crafter@gmail.com <br>
|
* @author code4crafter@gmail.com <br>
|
||||||
* @date: 13-8-1 <br>
|
* @date: 13-8-1 <br>
|
||||||
* Time: 下午9:33 <br>
|
* Time: 下午9:33 <br>
|
||||||
|
|
Loading…
Reference in New Issue