public IWebCrawlerWorker GetWorker(WebCrawlerWorkerType type) { switch (type) { case WebCrawlerWorkerType.Sync: return new SyncWorker(); default: throw new ArgumentException(); } }
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); }
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); }