Elixir:
Nedlasting av en nettside

Hvordan:

defmodule PageDownloader do
  require HTTPoison

  def download(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 to download. Status code: #{status_code}"}
      {:error, %HTTPoison.Error{reason: reason}} ->
        {:error, "Failed to download. Reason: #{reason}"}
    end
  end
end

# Bruk PageDownloader for å laste ned en nettside
{:ok, body} = PageDownloader.download("http://example.com")
IO.puts(body)

Eksempelutskrift:

<!doctype html>
<html>
<head>
    <title>Example Domain</title>
...
</head>
...
</html>

Dypdykk

Å laste ned nettsider er ikke noe nytt; det har vært en del av web-programmering siden internettets barndom. I Elixir brukes ofte HTTP-klientbiblioteker som HTTPoison eller Tesla for å utføre oppgaven. Disse bibliotekene forenkler prosessen ved å håndtere HTTP-forespørsler for deg. Alternativt kan man bruke lavnivå biblioteker som Erlangs :httpc. Når du laster ned en nettside, er det viktig å respektere robots.txt-filer og eventuelle API-grenser for å unngå å overbelaste serverne eller bryte med tjenestevilkår.

Se Også