Pobieranie strony internetowej

Elixir:
Pobieranie strony internetowej

Jak to zrobić:

Poniżej znajdziesz kod w języku Elixir, który pobiera zawartość strony internetowej:

defmodule PageDownloader do
  require HTTPoison

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

Przykładowe użycie:

PageDownloader.download("http://example.com")
# Wynik: {:ok, "... zawartość strony ..."}

Deep Dive

Pobieranie stron zaczęło się, gdy internet stał się dostępny dla mas; HTML i HTTP wyrosły jako standardy. Elixir, korzystając z potężnej HTTPoison biblioteki na bazie Erlanga, robi to dobrze i mało kłopotliwie. Alternatywy to, między innymi, :httpc z BEAM, Tesla czy Floki do analizy HTML po pobraniu. Wybór wynika z potrzeb projektu - HTTPoison jest świetny dla wielu zadań.

Zobacz też: