diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/model/OOSpider.java b/webmagic-core/src/main/java/us/codecraft/webmagic/model/OOSpider.java index e008bfe..900c9b4 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/model/OOSpider.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/model/OOSpider.java @@ -28,13 +28,15 @@ public class OOSpider extends Spider { this(ObjectPageProcessor.create(site, pageModels)); this.objectPipeline = new ObjectPipeline(); super.pipeline(objectPipeline); - for (Class pageModel : pageModels) { - this.objectPipeline.put(pageModel, pageModelPipeline); + if (pageModelPipeline!=null){ + for (Class pageModel : pageModels) { + this.objectPipeline.put(pageModel, pageModelPipeline); + } } } public static OOSpider create(Site site, Class... pageModels) { - return new OOSpider(site, new ConsolePageModelPipeline(), pageModels); + return new OOSpider(site, null, pageModels); } public static OOSpider create(Site site, PageModelPipeline pageModelPipeline, Class... pageModels) { diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/model/ObjectPipeline.java b/webmagic-core/src/main/java/us/codecraft/webmagic/model/ObjectPipeline.java index f590384..41296f5 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/model/ObjectPipeline.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/model/ObjectPipeline.java @@ -35,14 +35,13 @@ public class ObjectPipeline implements Pipeline { Object o = resultItems.get(classPageModelPipelineEntry.getKey().getCanonicalName()); if (o != null) { Annotation annotation = classPageModelPipelineEntry.getKey().getAnnotation(ExtractBy.class); - ExtractBy extractBy = (ExtractBy) annotation; - if (extractBy.multi()) { + if (annotation == null || !((ExtractBy) annotation).multi()) { + classPageModelPipelineEntry.getValue().process(o, task); + } else { List list = (List) o; for (Object o1 : list) { classPageModelPipelineEntry.getValue().process(o1, task); } - } else { - classPageModelPipelineEntry.getValue().process(o, task); } } }