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

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

12.02.2015, 14:38. Показов 4094. Ответов 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 id=&quot;first_id&quot;&gt;*первое...

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

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

3
Администратор
Эксперт .NET
 Аватар для OwenGlendower
17899 / 13995 / 5345
Регистрация: 17.03.2014
Сообщений: 28,654
Записей в блоге: 1
14.02.2015, 04:26
Лучший ответ Сообщение было отмечено 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  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
по всей видимости этот элемент создается JavaScript-ом и т.к. HtmlAgilityPack не выполняет JavaScript, то и узла не будет.
Понятно. Спасибо! Буду думать дальше

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

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

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

Парсинг HTML (HtmlAgilityPack). Как получить картинку между текстом?
Пример HTML &lt;p class=&quot;left_margin&quot;&gt; 5) &lt;img src=&quot;https://sait.ru/formula/svg/8b/8b847cfae498e96e3fa08a56cb42b838.svg&quot;...

Программа на цикл for (как добиться вывода на экран?)
Программа на цикл for(помогите добиться вывода на экран), повторять в цикле нужно вот это выражение: (x^i+sin(ix))/3^i от i:=1 до...

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Списки и кортежи в Python: различия, особенности, применение
py-thonny 13.04.2025
Python славится своей гибкостью при работе с данными. В арсенале языка есть две основные последовательные структуры данных, которые программисты используют ежедневно — списки и кортежи. Эти структуры. . .
Middleware в ASP.NET Core
UnmanagedCoder 13.04.2025
В ASP. NET Core термин "middleware" занимает особое место. Что же это такое? Middleware представляет собой программные компоненты, которые формируют конвейер обработки HTTP-запросов в приложении. . . .
Таблицы лута в Unity с MinMaxCurve и AnimationCurve
GameUnited 12.04.2025
Создание сбалансированного лута в играх — задача не из простых. Разработчики постоянно ищут способы настройки систем выпадения предметов, которые будут одновременно справедливыми для игроков и. . .
std::expected в C++: Управление ошибками
bytestream 12.04.2025
Обработка ошибок всегда была важной и одновременно сложной задачей в программировании на C++. На протяжении долгого времени разработчики использовали различные подходы: возвращаемые коды ошибок,. . .
Nullable типы и операторы объединения null в C#
UnmanagedCoder 12.04.2025
Многие шутят, что null — это миллиардная ошибка в программировании. И в этой шутке только доля шутки. Тони Хоар, создатель null-ссылки, сам назвал её своей "ошибкой на миллиард долларов". Почему?. . .
Аутентификация и авторизация JWT в микросервисах с API Gateway
stackOverflow 12.04.2025
В традиционных монолитных приложениях безопасность часто реализуется как единый защитный периметр - пользователь проходит аутентификацию один раз, после чего получает доступ ко всем функциям системы. . . .
TypeScript: Интерфейсы vs Типы
run.dev 11.04.2025
Современная разработка на JavaScript сталкивается с множеством проблем при масштабировании проектов. Типизация кода стала хорошим инструментом, помогающим избежать ошибок во время выполнения,. . .
Управление топиками и разделами Kafka
Javaican 11.04.2025
Apache Kafka — распределенная платформа потоковой передачи данных, которая стала стандартом для построения высоконагруженных систем обмена сообщениями. В современной архитектуре микросервисов,. . .
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер