Задать вопрос
@st_rapon

Возможно ли скачать статью с википедии используя c#?

Всем привет, есть музыкальный сайт написанный на asp.net, нужно сделать так, чтобы на страничке артиста отображалась о нём информация из википедии. Собственно вопрос, как написать функцию, которая будет вытаскивать со странички из википедии текст. Заранее спасибо!
  • Вопрос задан
  • 405 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
Однозначно возможно.
-Чистым JS на клиенте, он сам все будет делать. (гуглим как послать GET запрос на другой сайт, получить и распарсить ответ вынув только нужное, если оно есть)
-APS.NET делаем на сервере и сразу отдаем клиенту. (думаем а надо ли это делать сервером)
Ответ написан
Комментировать
@st_rapon Автор вопроса
Не смог разобраться с API, зато нашёл решение проблемы в виде парсинга.
Использовал HtmlAgilityPack для извлечения текста статьи со страницы. Кидаю код, в котором тестировал этот парсинг может кому пригодится:

public static void GetArticle() //
        {
            string html = "https://en.wikipedia.org/wiki/Gorillaz ";
            HtmlDocument HD = new HtmlDocument();
            var web = new HtmlWeb
            {
                AutoDetectEncoding = false,
                OverrideEncoding = Encoding.UTF8,
            };
            HD = web.Load(html);                    //Скачиваем всю HTML страницу

            HtmlNodeCollection NoAltElements;
            NoAltElements = HD.DocumentNode.SelectNodes("//div[@class='mw-content-ltr']/p"); //Из элемента с классом 'mw-content-ltr'
                                                                                             //Берём весь текст, 
                                                                                             //который находится в тэге <p>

            string outputText = "";
            // проверка на наличие найденных узлов
            if (NoAltElements != null)
            {
                foreach (HtmlNode HN in NoAltElements)
                {
                    //Получаем строчки
                    outputText = HN.InnerText;
                }
            }

            Console.WriteLine(outputText);
        }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы