コード例 #1
0
ファイル: EntitySpider.cs プロジェクト: lulzzz/DotnetSpider
        protected override void InitPipelines(params string[] arguments)
        {
            base.InitPipelines(arguments);

            if (!arguments.Contains("skip"))
            {
                var entityProcessors = PageProcessors.Where(p => p is IEntityProcessor).ToList();
                var entityPipelines  = Pipelines.Where(p => p is BaseEntityPipeline).ToList();

                if (entityProcessors.Count != 0 && entityPipelines.Count == 0)
                {
                    throw new SpiderException("You may miss a entity pipeline.");
                }
                foreach (var processor in entityProcessors)
                {
                    foreach (var pipeline in entityPipelines)
                    {
                        var entityProcessor = processor as IEntityProcessor;
                        if (pipeline is BaseEntityPipeline newPipeline)
                        {
                            if (entityProcessor != null)
                            {
                                newPipeline.AddEntity(entityProcessor.EntityDefine);
                                newPipeline.Init();
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        protected override void PreInitComponent(params string[] arguments)
        {
            base.PreInitComponent(arguments);

            if (arguments.Contains("skip"))
            {
                return;
            }

            var entityProcessors = PageProcessors.Where(p => p is IEntityProcessor).ToList();
            var entityPipelines  = Pipelines.Where(p => p is BaseEntityPipeline).ToList();

            if (entityProcessors.Count != 0 && entityPipelines.Count == 0)
            {
                throw new SpiderException("You may miss a entity pipeline.");
            }
            foreach (var processor in entityProcessors)
            {
                foreach (var pipeline in entityPipelines)
                {
                    var entityProcessor            = processor as IEntityProcessor;
                    BaseEntityPipeline newPipeline = pipeline as BaseEntityPipeline;
                    newPipeline.AddEntity(entityProcessor.EntityDefine);
                }
            }
        }
コード例 #3
0
        protected override void InitPipelines(params string[] arguments)
        {
            if (Pipelines == null || Pipelines.Count == 0)
            {
                var defaultPipeline = GetDefaultPipeline();
                if (defaultPipeline != null)
                {
                    Pipelines.Add(defaultPipeline);
                }
            }

            if (!arguments.Contains("skip"))
            {
                var entityProcessors = PageProcessors.Where(p => p is IEntityProcessor).ToList();
                var entityPipelines  = Pipelines.Where(p => p is BaseEntityPipeline).ToList();

                if (entityProcessors.Count != 0 && entityPipelines.Count == 0)
                {
                    throw new SpiderException("You may miss a entity pipeline.");
                }
                foreach (var processor in entityProcessors)
                {
                    foreach (var pipeline in entityPipelines)
                    {
                        var entityProcessor            = processor as IEntityProcessor;
                        BaseEntityPipeline newPipeline = pipeline as BaseEntityPipeline;
                        newPipeline.AddEntity(entityProcessor.EntityDefine);
                    }
                }
            }

            if (PageProcessors == null || PageProcessors.Count == 0)
            {
                throw new SpiderException("Count of PageProcessor is zero.");
            }

            foreach (var pipeline in Pipelines)
            {
                pipeline.InitPipeline(this);
            }
        }