Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 261

Получение данных со скаченной страницы

12.06.2021, 18:42. Показов 1456. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте. Необходимо спарсить цену криптовалюты. Нашел страницу, которую буду скачивать, столкнулся с проблемой вытаскивания цены. Решил взять как инструмент "HtmlAgilityPack" единственное, что у меня получилось вытащить - это null
Страница, которую я скачиваю "view-source:https://www.coingecko.com/en/coins/solana" на 1412 строке находится нужный мне контент. Объясните, пожалуйста, как спарсить, возможно мне стоит изменить библиотеку для парса

Пользуюсь таким кодом
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   using (var client = new WebClient())
                {
                    client.Headers.Add(HttpRequestHeader.UserAgent, ".NET Application");
                    client.Encoding = Encoding.UTF8;
                    html = client.DownloadString("https://www.coingecko.com/en/coins/solana");
                }
            Console.WriteLine(html);
 
            // HtmlAgilityPack
            var htmlDoc = new HtmlDocument();
                htmlDoc.LoadHtml(html);
                var tdNodes = htmlDoc.DocumentNode.SelectNodes(".//div[@class='text-3xl']//span[@class='price.price']");
            Console.WriteLine(tdNodes);
                for (int i = 0; i < tdNodes.Count; i += 3)
                {
                    Console.WriteLine(tdNodes[i + 1].InnerText + ", " + tdNodes[i + 2].InnerText);
                }
Добавлено через 27 минут
Через поиск по этом тегам можно найти нужную мне строку "data-coin-id="4128" data-coin-symbol="sol" data-target="price.price">"
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.06.2021, 18:42
Ответы с готовыми решениями:

Получение данных со страницы сайта
Здравствуйте! Есть страница сайта (http://www.shanghairanking.com/SubjectCS2012.html), с которого нужно получить данные: 1. Название...

Получение данных со страницы Vk
Здравствуйте, пишу агента для ВК, и вот столкнулся с проблеммой, хочу при введении пользователем данных для входа, считывать с вконтакте.ру...

Получение данных с WEB страницы
Столкнулся с проблемкой. Начал гуглить, инфы хватает, но не знаю с чего именно начать, кто-нибудь может подробнее расписать с чего начать...

4
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
12.06.2021, 19:17
Лучший ответ Сообщение было отмечено Illson как решение

Решение

C#
1
2
var priceNode = htmlDoc.DocumentNode.SelectSingleNode("//div[@class='mt-3']//span[@data-coin-id='4128']");          
Console.WriteLine(priceNode.InnerText);
Насколько я понял, чтобы найти родительский элемент по классу, нужно передать полную строку класса, которая у прямого родителя целевого тега довольно длинная. Проще взять тег div выше по иерархии у которого всего один класс mt-3.
1
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 261
12.06.2021, 19:18  [ТС]
проблема в том, что я собираюсь брать разные монеты, собственно ид у них будут отличаться. Так что в моем случае не получится по ид брать
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
12.06.2021, 19:21
Программно зашейте символы монет и/или их id. И в зависимости от валюты подставляйте нужный id в селектор.
Id на то и Id - уникальный идентификатор, который однозначно идентифицирует нужную валюту. По нему проще всего искать.
1
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 261
12.06.2021, 19:23  [ТС]
для людей с подобным вопрсом, решил задачу так
C#
1
  var priceNode = htmlDoc.DocumentNode.SelectSingleNode("//div[@class='mt-3']//span[@data-coin-symbol='sol']");
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.06.2021, 19:23
Помогаю со студенческими работами здесь

Получение данных с html страницы
Подскажите в какую сторону капать Есть html страница с таблицей Из нее нужно получить цифорки С помощью чего их от туда извлекать грубо...

Получение данных с веб-страницы с закраской ячеек в определенный цвет в зависимости от ID данных
Помогите пожалуйста с написанием макроса, т.к. в VB особенно не разбираюсь. Макрос должен по нажатию на кнопку брать значения из...

Получение данных со страницы сайта
К примеру, открыт чат. Как я могу работать с входящими сообщениями внутри программы? В http-коде страницы сообщений нет

Получение данных со страницы плагином
Доброго времении суток. Подскажите пожалуйста как можно получить данные с формы , находящейся на странице и предать их плагину для...

Получение данных страницы с JavaScript
Всем привет. Подскажите. Пытаюсь получить содержимое страницы. Для этого создал модуль LoadHTML: Imports System.Net Imports...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru