Elixir:
Scaricare una pagina web

Come fare:

Elixir rende il download delle pagine web un gioco da ragazzi con la libreria HTTPoison. Installala aggiungendo {:httpoison, "~> 1.8"} al tuo mix.exs e esegui mix deps.get.

defmodule PageDownloader do
  def fetch(url) when is_binary(url) do
    case HTTPoison.get(url) do
      {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
        {:ok, body}
      {:ok, %HTTPoison.Response{status_code: status_code}} ->
        {:error, "Failed with status code: #{status_code}"}
      {:error, %HTTPoison.Error{reason: reason}} ->
        {:error, "Failed with error: #{reason}"}
    end
  end
end

# Uso
{:ok, content} = PageDownloader.fetch("https://www.example.com")
IO.puts(content)

Approfondimento:

Il download di pagine web in Elixir si appoggia al potente HTTPoison, che a sua volta si basa su Hackney, un cliente HTTP scritto in Erlang. In alternativa a HTTPoison, ci sono altre library come Tesla o Finch, ognuna con i suoi vantaggi e filosofie di progetto. La scelta tra queste dipende da fattori come la concorrenza, la configurazione e l’elaborazione delle richieste HTTP, oltre alle preferenze personali.

Vedere anche: