Haskell:
Аналіз HTML

Як:

Для парсингу HTML в Haskell ми використаємо бібліотеку tagsoup за її простоту та гнучкість. Спочатку, переконайтеся, що ви встановили бібліотеку, додавши tagsoup до файлу cabal вашого проєкту або виконавши команду cabal install tagsoup.

{-# LANGUAGE OverloadedStrings #-}

import Text.HTML.TagSoup

-- Приклад HTML для демонстрації
let sampleHtml = "<html><body><p>Вивчайте Haskell!</p><a href='http://example.com'>Натисніть тут</a></body></html>"

-- Парсинг HTML та фільтрація посилань (a теги)
let tags = parseTags sampleHtml
let links = [fromAttrib "href" tag | tag <- tags, isTagOpenName "a" tag]

-- Друк витягнутих посилань
print links

Приклад виводу:

["http://example.com"]

Для більш складних потреб в парсингу HTML розгляньте використання бібліотеки pandoc, особливо якщо ви працюєте з конвертацією документів. Вона надзвичайно універсальна, але має більше складності:

import Text.Pandoc

-- Припускаючи, що у вас завантажений документ Pandoc (doc), наприклад, з читання файлу
let doc = ... -- Тут розміщується ваш документ Pandoc

-- Конвертування документу в рядок HTML
let htmlString = writeHtmlString def doc

-- Тепер, ви могли б парсити `htmlString` як описано вище або продовжувати відповідно до ваших потреб.

Майте на увазі, що pandoc - це набагато більша бібліотека, яка фокусується на конвертації між численними форматами розмітки, тому використовуйте її, якщо вам потрібні ці додаткові можливості або якщо ви вже працюєте з форматами документів у вашому додатку.