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
- це набагато більша бібліотека, яка фокусується на конвертації між численними форматами розмітки, тому використовуйте її, якщо вам потрібні ці додаткові можливості або якщо ви вже працюєте з форматами документів у вашому додатку.