Exemple #1
0
 public IWebCrawlerWorker GetWorker(WebCrawlerWorkerType type)
 {
     switch (type)
     {
         case WebCrawlerWorkerType.Sync:
             return new SyncWorker();
         default: throw new ArgumentException();
     }
 }
Exemple #2
0
        public WebCrawlerResult DownloadWebSite(WebCrawlerParameters parameters, WebCrawlerWorkerType type = WebCrawlerWorkerType.Sync)
        {
            //NMB Тут посмотреть как лучше вернуть результат. Мапить или ещё чего
            var validationResult = parameters.Validate();
            if ( !validationResult.Valid ) return new WebCrawlerResult()
            {
                Success = false,
                Message = String.Join(Environment.NewLine, validationResult.Messages)
            };
            var resourceStack = CreateResourceStackWithInitialResource(parameters);

            IWorkerFactory workerFactory = new WorkerFactory();

            IWebCrawlerWorker worker = workerFactory.GetWorker(type);

            return worker.DonwlodWebSite(resourceStack);
        }
Exemple #3
0
        private static void Measure(string folderPath, WebCrawlerWorkerType type)
        {
            Directory.CreateDirectory(folderPath);
            var parameters = new WebCrawlerParameters("http://nezhnova.de", folderPath, 1, true);
            IWebCrawler webCrawler = new WebCrawler();

            Console.WriteLine("Start crawling. " + folderPath);
            Stopwatch sw = new Stopwatch();

            sw.Start();

            webCrawler.DownloadWebSite(parameters, type);

            sw.Stop();
            
            FileHelpers.CleanDirectory(folderPath);

            Console.WriteLine("{0} .Elapsed={1}", folderPath, sw.Elapsed);
        }