Beispiel #1
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);
        }
Beispiel #2
0
        private async void Worker()
        {
            for (int i = parserSettings.StartPoint; i <= parserSettings.EndPoint; i++)
            {
                if (!isActive)
                {
                    OnCompleted?.Invoke(this);
                    return;
                }

                var source = await htmlLoader.GetSourceByPageId(i);

                var domParser = new Parser();

                var document = await domParser.ParseDocumentAsync(source);

                var result = parser.Parse(document, Settings.ClassName, Settings.QuerySelector);

                OnNewData?.Invoke(this, result);
            }
            OnCompleted?.Invoke(this);
            isActive = false;
        }