С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
73 / 73 / 28
Регистрация: 06.10.2013
Сообщений: 309
1

Парсинг с помощью HtmlAgilityPack. Как добиться вывода информации?

12.02.2015, 14:38. Показов 4052. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Я использую библиотек HtmlAgilityPack.
Произвожу парсинг www.banki.ru
Мне необходимо получить информацию из вкладок "Вклады", "Кредиты", "Кредитные карты".
вот код парсинга вкладов:
C#
1
2
3
4
5
6
7
8
9
10
11
12
public static void ViewBestSuggest_NEW()
        {
            var webGet = new HtmlWeb(); 
            webGet.OverrideEncoding=Encoding.Default;           
            var document = webGet.Load("http://www.banki.ru/");
            HtmlNodeCollection HNC1 = document.DocumentNode.SelectNodes("//div[starts-with(@data-tabs-item-name, 'deposits')]");//div[starts-with(@data-tabs-item-name, 'deposits')]
            for(int i=0;i<HNC1.Count;i++)
            {
                Console.WriteLine(HNC1[i].InnerText);
            }
                    
        }
Как сделать так, чтобы не было ошибок при замене значения атрибута на допустимое значение=credits???
Ведь название атрибута не меняется, только значение...
Во вложении кусок кода страницы, который парсится
Миниатюры
Парсинг с помощью HtmlAgilityPack. Как добиться вывода информации?  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.02.2015, 14:38
Ответы с готовыми решениями:

Парсинг с помощью HtmlAgilityPack
Здравствуйте. Нужно спарсить со страницы два числа, которые стоят между тегов &lt;span...

Парсинг элементв с помощью HtmlAgilityPack
Помогите найти ошибку в коде. Сайт взял произвольный. X path с заголовка H1 &lt;h1...

Парсинг страницы с помощью HtmlAgilityPack
Имеется такая конструкция: &lt;div id=&quot;farm_town_20721&quot; class=&quot;tile farmtown_not_owned_on_same_island...

Парсинг жанров музыки с помощью HtmlAgilityPack
Здравствуйте! Уважаемые пользователи CyberForum! Подскажите пожалуйста как правильно парсить?...

3
Администратор
Эксперт .NET
17739 / 13860 / 5320
Регистрация: 17.03.2014
Сообщений: 28,375
Записей в блоге: 1
14.02.2015, 04:26 2
Лучший ответ Сообщение было отмечено Metall_Version как решение

Решение

JavaUser, по всей видимости этот элемент создается JavaScript-ом и т.к. HtmlAgilityPack не выполняет JavaScript, то и узла не будет.

P.S. Вместо Encoding.Default я бы использовал Encoding.GetEncoding(1251) т.к. значение Encoding.Default зависит от региональных настроек.
1
73 / 73 / 28
Регистрация: 06.10.2013
Сообщений: 309
16.02.2015, 13:42  [ТС] 3
Цитата Сообщение от OwenGlendower Посмотреть сообщение
по всей видимости этот элемент создается JavaScript-ом и т.к. HtmlAgilityPack не выполняет JavaScript, то и узла не будет.
Понятно. Спасибо! Буду думать дальше

Добавлено через 33 секунды
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Вместо Encoding.Default я бы использовал Encoding.GetEncoding(1251)
это не катит... катит только Encopding.Default
0
burning1ife
1465 / 1286 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
17.02.2015, 05:19 4
Для того чтобы выполнить javascript можно использовать, например, Awesomium или аналогичное решение.
А после уже передавать загруженную страницу в HtmlAgilityPack
Принцип работы описал здесь:
Awesomium WebControl: работа с элементами с помощью foreach

Полную загрузку можно определить из 2-х событий:
1. LoadingFrameComplete - загрузились скрипты
2. DocumentReady - загрузился DOM
Т.е. эти 2 события должны произойти. А произойти они могут в разном порядке. Значит надо ставить флаги, и при каждом из них проверять, не произошло ли другое.
0
17.02.2015, 05:19
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2015, 05:19
Помогаю со студенческими работами здесь

Парсинг HTML (HtmlAgilityPack). Как получить картинку между текстом?
Пример HTML &lt;p class=&quot;left_margin&quot;&gt; 5) &lt;img...

Программа на цикл for (как добиться вывода на экран?)
Программа на цикл for(помогите добиться вывода на экран), повторять в цикле нужно вот это...

Парсинг, HtmlAgilityPack
В общем давно хотел затронуть тему парсинга, сейчас появился повод... В общем полазил я по инету...

Парсинг HtmlAgilityPack
ребята, никак не могу понять, по какому принципу строится xPath ? вот, например, нужно мне...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Администрирован­­­ие Git, продвинутые техники работы с Git
InfoMaster 11.01.2025
Основы управления репозиторием Эффективное управление Git-репозиторием требует глубокого понимания механизмов контроля доступа и инструментов администрирования. Рассмотрим ключевые аспекты. . .
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru