public void BeginSession(CrawlerConfig InCfg) { Config = InCfg; RootDocument = new HttpDocument(Config.RemotePath, 0); ScanTasks.Enqueue(RootDocument); BeginNextDocument(); }
private void OnDocumentFinished(HttpDocument Doc) { ++DocumentsParsed; if (Doc.CrawlerStatus == HttpDocument.Status.ScanFinished && //jeśli skanowanie dokumentu się powiodło... Doc.Depth < Config.CrawlerMaxDepth - 1) //...i nie jest on na maksymalnej głębokości, { foreach (HttpDocument NextDoc in Doc.Subdocuments) { ScanTasks.Enqueue(NextDoc); //to dodaję poddokumenty do kolejki } } //rozpoczynam kolejny dokument OnCrawlerProgress(this, DocumentsParsed, ScanTasks.Count); BeginNextDocument(); }
private void PrintDoc(HttpDocument Doc) { string Separator = ""; for (int i = 0; i < Doc.Depth; ++i) { Separator += " "; } ListboxLog.Items.Add(Separator + " " + Doc.Href); foreach (string Img in Doc.ImageAddresses) { ListboxLog.Items.Add(Separator + " <img> " + Img); } foreach (string Mail in Doc.MailAddresses) { ListboxLog.Items.Add(Separator + " <mail> " + Mail); } foreach (HttpDocument Subdoc in Doc.Subdocuments) { PrintDoc(Subdoc); } }