Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

Как найти html элемент по его классу?

В этой статье хотелось бы рассказать, как можно быстро и легко найти html элемент по его классу. Поиск элементов в HTML документе — это очень распространённая задача, с которой очень часто сталкиваются многие программисты, если например, нужно выполнить парсинг сайта или какой-нибудь отдельной HTML страницы. В отличие от других классов для работы с web, многие из которых содержат уже готовые методы, для решения данной задачи, class webBrowser по умолчанию не предоставляет такого функционала. Поэтому, если Вам необходимо найти элемент по его классу, то Вы можете воспользоваться следующим способом.

И так, предположим, что у нас есть простая html страница, состоящая из трёх блоков div. Задача: найти второй элемент div по его классу.

Создадим Windows Forms приложение, после чего добавим на форму: кнопку и элемент управления webBrowser. Если Вам не требуется графическое отображение страницы, то тогда замените control webBrowser на одноименный класс.

control webbrowser


Чат codeby в telegram перезагрузка

Обсуждаем вопросы информационной безопасности, методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие.  Подробнее ...

Теперь нужно загрузить веб страницу. Например, это можно сделать с помощью метода webBrowser Navigate, о котором рассказывалось чуть ранее в одной из предыдущих статей, если интересно, то более подробно об этом можно прочитать здесь.

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

Будем считать, что страница на данный момент полностью загружена, и теперь можно переходить к решению нашей задачи. И так на данный момент нас больше всего интересует запись: div class = «two», где div — это тэг, а class — это атрибут html элемента, который чаще всего используется для привязки стиля к одному или нескольким элементам на странице. И так, раз это html атрибут, то его можно легко найти с помощью метода GetAttribute. Но, перед этим нужно найти div элемент, у которого мы и будем искать эти атрибуты.

Не смотря на то, что коллекция (divs) содержит три элемента div, поиск по атрибуту class не даёт никаких результатов. Это происходит потому, что интерфейс HTMLElement, который описывает все элементы внутри дерева DOM, не содержит такого атрибута.

Как видно из описания интерфейса, вместо атрибута class используется атрибут className, это связано с тем, что во многих языках программирования слово class является ключевым словом, как например, в том же языке csharp, в результате чего часто возникали различные конфликтные ситуации, поэтому его было решено переименовать. Зная это, внесём небольшое изменение в наш выше написанный код:

Проверяем, теперь всё работает!

Читайте также:


Codeby.net совместно с PHDays 8

Объявляют о проведении грандиозного конкурса с умопомрачительными призами ! Получи бесплатно билет на PHDays 8, деньги, футболку с символикой codeby, а так же всеобщий респект и уважение. Подробнее ...

Похожие темы

C# WebBrowser. Часть 1: Получение и вывод данных... C# WebBrowser. Часть 1: Получение и вывод данных При создании одного из своих приложений мне потребовалось реализовать в нём возможность скачивать фа...
c# Создание веб-сервера с помощью класса HttpListe... Как создать веб-сервер с помощью класса HttpListener? В этой небольшой статье рассмотрим на простом примере, как создать веб-сервер с помощью языка c...
Как работать с классом WebBrowser?... Пример работы с классом WebBrowser В комментариях многие просят показать или рассказать, как работать с классом webBrowser, а не с одноимённым элемен...
Как нажать на кнопку в webBrowser?... Как нажать на кнопку в окне webBrowser? Очень часто в комментариях спрашивают: как нажать на кнопку в окне webBrowser? Так как этот вопрос очень част...
Control WebBrowser. Часть 2: События Control WebBrowser. Часть 2: События В предыдущей статье было продемонстрировано, как получить данные в виде html страницы и вывести их в окно элемен...