Haskell:
Descargando una página web
Cómo hacerlo:
Vamos a usar Haskell junto con algunas librerías prácticas. Asegúrate de tener instalados stack y http-conduit. Si no los tienes, instálalos usando stack install http-conduit. Aquí está el código:
import Network.HTTP.Simple
main :: IO ()
main = do
response <- httpLBS "http://example.com"
let statusCode = getResponseStatusCode response
if statusCode == 200
then putStrLn $ "Download successful! Status code: " ++ show statusCode
else print statusCode
print $ getResponseBody responseSi todo va bien, verás:
Download successful! Status code: 200
"<html>...</html>" -- Aquí estará el contenido de la páginaAnálisis Profundo:
Descargar páginas web es un concepto tan antiguo como la web misma. Aunque el método básico no ha cambiado mucho, las herramientas sí. Antes se usaba curl o wget en línea de comandos, y en Haskell, librerías como http-conduit facilitan la tarea.
Otras opciones modernas incluyen wreq y http-client. Cada una tiene sus pros y contras. Por ejemplo, http-conduit es bueno para gestionar conexiones persistentes mientras que wreq tiene una interfaz más simple.
Detalles de implementación: en el fondo, la descarga de una página es una simple petición HTTP. Sin embargo, el manejo de errores, redirecciones y sesiones puede complicarse. Es una buena idea familiarizarse con los códigos de estado HTTP y el manejo de excepciones en Haskell.
Ver También:
- La documentación de
http-conduit: https://www.stackage.org/package/http-conduit - La biblioteca
wreqpara comparar: https://hackage.haskell.org/package/wreq - Tutorial de
http-client: https://hackage.haskell.org/package/http-client-tls