Exemple #1
0
 public void BeginSession(CrawlerConfig InCfg)
 {
     Config       = InCfg;
     RootDocument = new HttpDocument(Config.RemotePath, 0);
     ScanTasks.Enqueue(RootDocument);
     BeginNextDocument();
 }
Exemple #2
0
        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);
            }
        }