示例#1
0
        public async Task Test_AngleSharpParser_OnSomeInputString()
        {
            var parser = new AngleSharpParser();
            var texts  = (await parser.ParseAsync($"<a>Hello world</a>")).ToList();

            Assert.AreEqual(1, texts.Count);
            Assert.AreEqual("Hello world", texts[0]);
        }
示例#2
0
        public async Task Test_AngleSharpParser_OnFullReadFile_And_Count_ResultTexts()
        {
            var fileName = Path.Combine(TestContext.CurrentContext.GetTestProjectPath(),
                                        @"SampleFiles\Создаем программное обеспечение для бизнеса - SimbirSoft.html");

            var fileContent = await File.ReadAllTextAsync(fileName);

            var configuration = ParseConfiguration.Default();
            var parser        = new AngleSharpParser(configuration.ExcludeTags);
            var texts         = (await parser.ParseAsync(fileContent)).ToList();

            Assert.AreEqual(290, texts.Count);
        }
示例#3
0
        /// <summary>
        /// Основной метод запуска парсинга из потока
        /// </summary>
        /// <param name="streamReader">Входной поток</param>
        public override async Task Parse(StreamReader streamReader)
        {
            var parser = new AngleSharpParser(Configuration.ExcludeTags);

            var fileContent = await streamReader.ReadToEndAsync();

            IEnumerable <string> texts;

            try
            {
                texts = await parser.ParseAsync(fileContent);
            }
            catch (Exception e)
            {
                throw new HtmlParserException($"Ошибка в процессе парсинга: {e.Message}");
            }

            var wordsDict = ExtractUniqueWords(texts);

            PrintReport(wordsDict);
        }