Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 180
1

Парсинг сайта

09.04.2018, 17:11. Показов 835. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть сайт - https://citaty.info/category/zhiznennye-citaty
На каждой странице по 11 цитат.
Задача спарсить все 11 цитат в List.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
List<Quotations> Quotations = new List<Quotations>();
            string data = GetPageText(Url, false);
            HtmlDocument htmlDoc = new HtmlDocument();
            HtmlNode Content;
            int count = 1;
            htmlDoc.LoadHtml(data);
            WebClient Client = new WebClient();
            Content = htmlDoc.DocumentNode.SelectSingleNode("//div[@class='view-content']");
            try
            {
                foreach (HtmlNode item in Content.SelectNodes("./div[@class='views-row views-row-"+count+" quotes-row']"))
                {
                    string t = item.InnerText;
                    count++;
                }                                 
            }
            catch (Exception ex) {  }
По результату парситься только 1 запись. Не могу найти ошибку, почем не парсятся все 11 записей.
Заранее благодарен за помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2018, 17:11
Ответы с готовыми решениями:

Парсинг сайта
Здравствуйте. Я хочу с главной страницы сайта https://www.basketball24.com/ парсить названия команд...

Парсинг сайта
Всем привет! Есть необходимость получить координаты остановки отсюда...

Парсинг сайта
Здраствуйте, можете подсказать как разбить фрагмент сайта &lt;div class=vrezka&gt;&lt;a...

Парсинг сайта
Доброго времени суток! Пытаюсь парсить html страницу, но столкнулся с проблемой: разметка,...

1
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
09.04.2018, 20:43 2
Леонид Каруна, конструкция in в foreach выполняется один раз, она возвращает один узел и соответственно цикл делает только одну итерацию. Лучше использовать for
C#
1
2
3
4
5
6
7
8
9
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(data);
HtmlNode Content = htmlDoc.DocumentNode.SelectSingleNode("//div[@class='view-content']");
for (int i=1; ; i++)
{
    var quoteNode = Content.SelectSingleNode("./div[@class='views-row views-row-"+i+" quotes-row']");
    if (quoteNode == null) break;
    string t = quoteNode.InnerText;
}
1
09.04.2018, 20:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2018, 20:43
Помогаю со студенческими работами здесь

Парсинг сайта с авторизацией
Всем доброго времени суток. Необходимо пропарсить несколько страниц сайт, при этом заранее...

Парсинг данных с сайта
Помогите пожалуйста составить регулярное выражение для задания : (Определить количество книг по...

Парсинг сайта steamcommunity
Доброго времени суток ребят! Ситуация такая... Нужно спарсить данные с сайта, НО у меня ничего не...

Парсинг сайта с авторизацией
Вот что получилось сделать по авторизации: public void ASendPost() { var...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru