Baixando uma página da web

Haskell:
Baixando uma página da web

Como Fazer:

Instale a biblioteca http-conduit com cabal install http-conduit e use o seguinte exemplo:

import Network.HTTP.Simple

main :: IO ()
main = do
    response <- httpLBS "http://example.com"
    let statusCode = getResponseStatusCode response
    if statusCode == 200
        then putStrLn $ "Foi baixado com sucesso! Código de status: " ++ show statusCode
        else print $ "Algo deu errado! Código de status: " ++ show statusCode
    print $ getResponseBody response

Rodando isso, você verá algo do tipo:

"Foi baixado com sucesso! Código de status: 200"
"<!doctype html>..."

Aprofundamento

O download de páginas web não é novidade, mas Haskell o torna elegante com sua tipagem forte e efeitos colaterais controlados. A bilbioteca http-conduit é só uma das ferramentas; alternativas incluem wreq e http-client. Detalhe importante do http-conduit é sua habilidade de lidar com solicitações streaming e processamento de resposta incrementais.

Veja Também