private async void Worker()
        {
            for (int i = _parserSettings.StartPoint; i < _parserSettings.EndPoint; i++)
            {
                if (isActive)
                {
                    string source = await _loader.GetSourseByPage(i);

                    HtmlParser    docParser = new HtmlParser();
                    IHtmlDocument document  = await docParser.ParseDocumentAsync(source);

                    OnNewName?.Invoke(this, _parser.Parse(document, DataType.auctionName));
                }
            }
            OnComplited?.Invoke(this);
            Stop();
            return;
        }
Exemple #2
0
        public async void Worker()
        {
            for (var i = _parserSettings.StartPoint; i <= _parserSettings.EndPoint; i++)
            {
                if (IsActive)
                {
                    string source = await _loader.GetSourceByPage(i);

                    HtmlParser    domParser = new HtmlParser();
                    IHtmlDocument document  = await domParser.ParseDocumentAsync(source);

                    T result = Parser.Parse(document);
                    OnNewData?.Invoke(this, result);
                }
            }

            OnComplited?.Invoke(this);
            IsActive = false;
        }
Exemple #3
0
        /// <summary>
        /// Будет контролировать процесс парсинга.
        /// </summary>
        public async void Worker()
        {
            for (int i = parserSettings.StartPoint; i <= parserSettings.EndPoint; i++)
            {
                if (IsActive)                                                             //Проверка если запущин еще парсер.
                {
                    string source = await loader.GetSourceByPage(i);                      //Получаем код страницы.

                    HtmlParser    domParser = new HtmlParser();                           //Парсер из AngleSharp.
                    IHtmlDocument document  = await domParser.ParseDocumentAsync(source); //получить код с которым можно работать.

                    T result = parser.Parse(document);
                    items = result;
                    OnNewData?.Invoke(this, result);
                }
            }

            OnComplited?.Invoke(this);
            isActive = false;
        }
Exemple #4
0
        /// <summary>
        /// Метод получает html-код страницы и запускает работу парсера.
        /// </summary>
        public async void StartParse()
        {
            OnStart?.Invoke(this);

            // Получаем код страницы.
            string source = await _loader.GetSource();

            if (string.IsNullOrEmpty(source))
            {
                return;
            }

            // Парсим код страницы с помощью AngleSharp.
            var           domParser = new AngleSharp.Html.Parser.HtmlParser();
            IHtmlDocument document  = await domParser.ParseDocumentAsync(source);

            T result = Parser.Parse(document);

            OnComplited?.Invoke(this, result);
        }
        public async void Worker()
        {
            for (int i = parserSettings.StartPoint; i <= parserSettings.EndPoint; i++)
            {
                if (IsActive)
                {
                    string source = await loader.GetSourceByPage(i); //Получаем код страницы

                    //Здесь магия AngleShap, подробнее об интерфейсе IHtmlDocument и классе HtmlParser,
                    //можно прочитать на GitHub, это интересное чтиво с примерами.
                    HtmlParser    domParser = new HtmlParser();
                    IHtmlDocument document  = await domParser.ParseDocumentAsync(source);

                    T result = parser.Parse(document);
                    OnNewData?.Invoke(this, result);
                }
            }

            OnComplited?.Invoke(this);
            isActive = false;
        }
Exemple #6
0
        private async void Worker()
        {
            for (int i = parserSettings.StartPoint; i <= parserSettings.EndPoint; i++)
            {
                if (!isActive)
                {
                    OnComplited?.Invoke(this);
                    return;
                }
                var source = await loader.GetSourceByPageId(i);

                var domParser = new HtmlParser();

                var document = await domParser.ParseAsync(source);

                var result = parser.Parse(document);
                OnNewData?.Invoke(this, result);
            }
            OnComplited?.Invoke(this);
            isActive = false;
        }
Exemple #7
0
        public async Task <bool> Compress()
        {
            LastError = null;

            try
            {
                await CompressInner(true);

                return(true);
            }
            catch (Exception e)
            {
                LastError = e;
                Trace.Write(e);
                return(false);
            }
            finally
            {
                OnComplited?.Invoke(this, EventArgs.Empty);
            }
        }
Exemple #8
0
        public async Task <bool> Extract()
        {
            LastError = null;

            try
            {
                await ExtractInner(_removeAfterUnzip, _cleanExtractingFolder);

                return(true);
            }
            catch (Exception e)
            {
                LastError = e;
                Trace.Write(e);
                return(false);
            }
            finally
            {
                OnComplited?.Invoke(this, EventArgs.Empty);
            }
        }
Exemple #9
0
        private async void Worker()
        {
            if (!isActive)
            {
                OnComplited?.Invoke(this);
                return;
            }

            var source = await loader.GetSourceByPageId();

            var domParser = new HtmlParser();

            var document = await domParser.ParseAsync(source);

            var resultPars = parser.Parse(document);



            OnNewData?.Invoke(this, resultPars);

            OnComplited?.Invoke(this);
        }
Exemple #10
0
        public async Task Worker(string wwwroot)
        {
            for (int i = parserSettings.StartPoint; i <= parserSettings.EndPoint; i++)
            {
                if (IsActive)
                {
                    HtmlParser domParser = new HtmlParser();

                    string source = await loader.GetSourceByPage(i);

                    IHtmlDocument document = await domParser.ParseDocumentAsync(source);

                    T idList = parser.GetCarIdsList(document);

                    List <IHtmlDocument> documents   = new List <IHtmlDocument>();
                    string[]             sourceArray = await loader.GetSourcesByCarIds((string[])(object)idList); // очень долго отрабатывает

                    foreach (var item in sourceArray)
                    {
                        documents.Add(await domParser.ParseDocumentAsync(item));
                    }
                    await parser.ParseCarDetailsAsync(documents, (string[])(object)idList);

                    List <IHtmlDocument> photoDocuments   = new List <IHtmlDocument>();
                    string[]             sourcePhotoArray = await loader.GetPhotoSourcesByCarIds((string[])(object)idList);

                    foreach (var item in sourcePhotoArray)
                    {
                        photoDocuments.Add(await domParser.ParseDocumentAsync(item));
                    }
                    await parser.ParseCarPhotosAsync(photoDocuments, (string[])(object)idList, wwwroot);

                    //OnNewData?.Invoke(this, result);
                }
            }

            OnComplited?.Invoke(this);
            isActive = false;
        }