Téléchargement d'une page web

Elixir:
Téléchargement d'une page web

How to: (Comment faire : )

Elixir, avec ses librairies comme HTTPoison, rend ça simple. Voici un exemple pour télécharger le contenu d’une page :

# Ajoutez HTTPoison à votre mix.exs
defp deps do
  [
    {:httpoison, "~> 1.8"}
  ]
end

# Exemple basique de téléchargement d'une page
def download_page(url) do
  case HTTPoison.get(url) do
    {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
      body
    {:ok, %HTTPoison.Response{status_code: status_code}} ->
      "Erreur : #{status_code}"
    {:error, %HTTPoison.Error{reason: reason}} ->
      "Erreur : #{reason}"
  end
end

# Utilisation
IO.puts(download_page("http://example.com"))

Output attendu (cela peut varier selon le contenu actuel de la page) :

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

Deep Dive (Plongée en profondeur)

Historiquement, télécharger des données web se faisait en bash avec curl ou wget. En Elixir, HTTPoison s’appuie sur Hackney, une librairie robuste d’Erlang. Vous pourriez aussi utiliser Tesla, plus flexible avec des middlewares, ou même Scrapy en Python pour un scraping plus avancé. L’astuce avec Elixir, c’est de traiter les téléchargements de façon concurrente et efficace, grâce à la machine virtuelle Erlang.

See Also (Voir aussi)