Elixir:
Webseite herunterladen
So geht’s:
Elixir verwendet die HTTPoison-Bibliothek für HTTP-Anfragen. Wir installieren HTTPoison, machen eine Anfrage und verarbeiten die Antwort:
# In mix.exs, fügen Sie {:httpoison, "~> 1.8"} zum Abschnitt :deps hinzu.
defp deps do
[
{:httpoison, "~> 1.8"}
]
end
# Dann führen Sie `mix deps.get` aus, um die Abhängigkeit zu installieren.
# Verwenden Sie HTTPoison, um eine Webseite herunterzuladen:
defmodule PageDownloader do
def fetch(url) do
case HTTPoison.get(url) do
{:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
{:ok, body}
{:ok, %HTTPoison.Response{status_code: code}} ->
{:error, "Unable to fetch page. Status code: #{code}"}
{:error, %HTTPoison.Error{reason: reason}} ->
{:error, "Error fetching page: #{reason}"}
end
end
end
# Beispielaufruf und mögliche Ausgabe:
PageDownloader.fetch("http://example.com")
# => {:ok, "<html>...</html>"}
Deep Dive:
Elixir-Programmierer nutzen oft HTTPoison, das auf Erlangs hackney
-Bibliothek basiert, um HTTP-Anfragen zu machen. Es gibt Alternativen wie Tesla
, das Middleware unterstützt, und HTTPotion
, wobei HTTPoison meistens für seine Einfachheit und Leistungsfähigkeit bevorzugt wird. Beim Herunterladen einer Webseite müssen Dinge wie Antwort-Codes, Weiterleitungen, Timeouts und Fehlerbehandlung berücksichtigt werden.