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ń.