ウェブページのダウンロード

Elixir:
ウェブページのダウンロード

How to: (やり方)

Elixirを用いてHTTPのリクエストを送り、Webページの内容を取得する例を見てみましょう。HTTPoison などのパッケージを使用します。

# HTTPoisonパッケージを使う準備
defp deps do
  [
    {:httpoison, "~> 1.8"}
  ]
end

# Webページをダウンロードする関数
def download_web_page(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 fetch. Status code: #{status_code}"}
    {:error, %HTTPoison.Error{reason: reason}} ->
      {:error, "Error: #{reason}"}
  end
end

# 使ってみよう
{:ok, content} = download_web_page("https://example.com")

Deep Dive (深掘り)

過去にはHTTPoisonの前にHTTPotionやErlangのhttpcモジュールが使われていました。HTTPoisonはErlangのhackneyライブラリをラップして使いやすくしています。他の選択肢としては、Elixirの標準ライブラリに含まれるHTTPクライアントや最近人気のTeslaなどもあります。

Webページをダウンロードする際には、サーバーへの負荷や法律、プライバシーへの配慮も必要です。やり過ぎない、適正な規模でのデータ収集を心がけましょう。

See Also (関連情報)