Загрузка веб-страницы

Haskell:
Загрузка веб-страницы

Как это сделать:

Давайте рассмотрим простой пример на основе библиотеки http-conduit в Haskell. Сначала установите её, используя cabal install http-conduit. Затем:

import Network.HTTP.Conduit -- Основная сетевая библиотека
import qualified Data.ByteString.Lazy as L -- Нам понадобятся Lazy ByteStrings

-- Функция для загрузки веб-страницы
downloadPage :: String -> IO L.ByteString
downloadPage url = simpleHttp url

main :: IO ()
main = do
    -- Использовать функцию для загрузки страницы
    content <- downloadPage "http://example.com"
    -- Сделать что-то с содержимым, например, распечатать его
    L.putStr content

Запустив это, вы увидите HTML http://example.com на вашем экране.

Подробнее

HTTP запросы в Haskell не всегда были такими аккуратными. Старые библиотеки, например HTTP, требовали больше шаблонного кода. С http-conduit, сложность абстрагирована.

Существуют и другие методы, например команда wget в скрипте оболочки или библиотека requests в Python. Но они не всегда так же эффективны или выразительны в функциональной среде Haskell.

Под капотом http-conduit использует Manager для управления пулом соединений и Keep-Alive для HTTP1.1, делая его более эффективным для множественных запросов.

См. также