Elixir:
Hämta en webbsida

How to:

Elixir gör det lätt att ladda ner webbsidor med hjälp av biblioteket HTTPoison. Här är ett enkelt exempel som visar hur du gör:

# Först, lägg till HTTPoison i din mix.exs fil
defp deps do
  [
    {:httpoison, "~> 1.8"}
  ]
end

# Kör sedan mix deps.get för att installera beroenden.

# Efter det, använd följande kod för att ladda ner en webbsida:
HTTPoison.start()
case HTTPoison.get("https://example.com") do
  {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
    IO.puts("Innehållet på sidan: #{body}")
  {:ok, %HTTPoison.Response{status_code: status_code}} ->
    IO.puts("Kunde inte ladda sidan. Statuskod: #{status_code}")
  {:error, %HTTPoison.Error{reason: reason}} ->
    IO.puts("Ett fel uppstod: #{reason}")
end

Exempel på utskrift:

Innehållet på sidan: <!doctype html> ...

Deep Dive

Förr i tiden användes ofta inbyggda funktioner som :httpc i Erlang för att ladda ner webbsidor i Elixir. Nuförtiden är HTTPoison det populärare valet eftersom det erbjuder en mer användarvänlig syntax och hanterar många av de komplexiteter som är förknippade med HTTP-kommunikation.

Alternativet till HTTPoison kan vara bibliotek som Tesla eller Req som också tillhandahåller enkelhet och flexibilitet i att göra HTTP-förfrågningar.

När du implementerar nedladdning av en webbsida, glöm inte att hantera olika HTTP-statuskoder och potentiella fel på ett elegant sätt. Det är också viktigt att respektera webbsidors robot.txt filer och använda rätt user-agent strängar så att din skrapning är ansvarsfull.

See Also