Haskell:
Hämta en webbsida

Hur man gör:

För att ladda ner en webbsida i Haskell kan vi använda http-conduit-paketen. Se till att du har GHC installerad och att du har konfigurerat ett nytt stack-projekt. Lägg till http-conduit i dina build-depends i package.yaml eller ditt .cabal-fil.

import qualified Data.ByteString.Lazy as LBS
import Network.HTTP.Simple

main :: IO ()
main = do
    response <- httpLBS "http://example.com"
    let body = getResponseBody response
    LBS.putStr body

Kör ditt program och du borde se HTML-koden för “http://example.com” skrivas ut i terminalen.

Fördjupning:

När Tim Berners-Lee uppfann webben på 1990-talet, blev nedladdning av webbsidor grundläggande för att navigera på internet. I Haskell finns det flera bibliotek för att göra detta men http-conduit är populär tack vare sin enkelhet och effektivitet. Det använder sig av conduits för att hantera dataströmmar, vilket hjälper till att hantera stora responsstorlekar.

Som alternativ till http-conduit kan du använda wget eller curl i ett shell-skript eller via System.Process i Haskell. För ännu enklare fall där felhantering och prestanda inte är lika kritiska, kan även Network.HTTP.simpleHTTP och urlDownloadToFile vara tillräckliga.

När det gäller implementeringsdetaljer, så hanterar http-conduit detaljer som omdirigeringar och skapar Request-objekt för dig. All data som mottas är i ByteString, och du kan använda funktioner från Data.ByteString.Lazy för att hantera den.

Se även: