Основной задачей данного пункта создания веб-приложения, является создание логики приложения. А именно парсинг html страницы в .net.
Данный пункт можно было осуществить двумя способами: с помощью регулярного выражения либо с помощью полноценного парсера. Парсер — объектно-ориентированный скриптовый язык программирования, который позволяет генерировать HTML-страницы на веб-сервере и поддерживает CGI. Так как HTML не всегда успешно работает с регулярными выражениями, то был выбран второй вариант реализации.
Существует множество парсеров, самые популярные из них AngleSharp и CsQuery.
CsQuery был одним из самых новых парсеров HTML для .NET. В качестве основы была взята библиотека validator. nu для Java, которая в свою очередь является портом из движка Gecko (Firefox).
AngleSharp В отличие от CsQuery, написан с нуля вручную на C#. Также включает парсеры других языков. API построен на базе официальной спецификации по JavaScript HTML DOM. В некоторых местах есть странности, непривычные для разработчиков на .NET (например, при обращении к неверному индексу в коллекции будет возвращён null, а не выброшено исключение; есть свой отдельный класс Url; пространства имён очень гранулярные).
Так как anglesharp был разработан для решения более сложных, ибо он имеет множество специализированных интерфейсов, поэтому для реализации данного этапа разработки веб-приложения использовалась библиотека CsQuery.
После успешного парсинга html кода необходимой странички, реализован поиск цены с помощью селектора, который задается пользователем, и ее запись в текстовую переменную:
Рис. 5 Демонстрация работоспособности парсера
в которой в последствии будут удалены все не числовые символы, потому что в большинстве случаев третьи степени отделяются пробелом, либо вообще присутствует денежная еденица. После этого тип преобразуется в int и записывается в базу данных. Если переменная окажется «пустой», программа выведет уведомление об ошибке, а html код веб-страницы будет сохранен в текстовый файл в корневой папке программы.
Пример в приложении Г