Elixir:
Nedlasting av en nettside
Hvordan:
defmodule PageDownloader do
require HTTPoison
def download(url) do
case HTTPoison.get(url) do
{:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
{:ok, body}
{:ok, %HTTPoison.Response{status_code: status_code}} ->
{:error, "Failed to download. Status code: #{status_code}"}
{:error, %HTTPoison.Error{reason: reason}} ->
{:error, "Failed to download. Reason: #{reason}"}
end
end
end
# Bruk PageDownloader for å laste ned en nettside
{:ok, body} = PageDownloader.download("http://example.com")
IO.puts(body)
Eksempelutskrift:
<!doctype html>
<html>
<head>
<title>Example Domain</title>
...
</head>
...
</html>
Dypdykk
Å laste ned nettsider er ikke noe nytt; det har vært en del av web-programmering siden internettets barndom. I Elixir brukes ofte HTTP-klientbiblioteker som HTTPoison eller Tesla for å utføre oppgaven. Disse bibliotekene forenkler prosessen ved å håndtere HTTP-forespørsler for deg. Alternativt kan man bruke lavnivå biblioteker som Erlangs :httpc. Når du laster ned en nettside, er det viktig å respektere robots.txt-filer og eventuelle API-grenser for å unngå å overbelaste serverne eller bryte med tjenestevilkår.
Se Også
- HTTPoison GitHub-side: https://github.com/edgurgel/httpoison
- Tesla GitHub-side: https://github.com/teamon/tesla
- Elixir’s offisielle dokumentasjon: https://elixir-lang.org/docs.html
- Web scraping guide med Elixir: https://www.scrapingbee.com/blog/web-scraping-elixir/