웹 페이지 다운로드하기

Elixir:
웹 페이지 다운로드하기

How to: (어떻게 하나요?)

Elixir에서는 HTTPoison이나 HTTPotion 같은 라이브러리를 사용해 웹 페이지를 다운로드할 수 있습니다. 예제를 따라 해 봅시다.

# HTTPoison 라이브러리를 추가합니다:
defp deps do
  [
    {:httpoison, "~> 1.8"}
  ]
end

# 페이지를 다운로드하는 함수:
def download_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, "Error with status code: #{status_code}"}
    {:error, %HTTPoison.Error{reason: reason}} ->
      {:error, reason}
  end
end

# 함수 예제 사용:
download_page("https://hex.pm")

Deep Dive: (깊이 있게 알아보기)

웹 페이지 다운로드는 최초의 웹 상호작용 중 하나였습니다. Elixir에서 이 작업은 Erlang의 강력한 OTP 플랫폼 위에 구축된 컨커런시(concurrency)와 결합하여 효율적으로 수행됩니다. HTTPoison은 hackney 라이브러리 위에 구축된 HTTP 클라이언트입니다. HTTPotion이라는 대안도 있지만, 더 이상 활발하게 관리되지 않습니다.

다운로드 프로세스에는 HTTP 프로토콜의 GET 요청을 사용하는 것이 포함됩니다. 이것은 서버에 웹 페이지의 사본을 요청하는 가장 간단한 방법입니다. 여러분의 요청은 HTTP 헤더, 쿠키, 사용자 에이전트 등 다양한 HTTP 요청 패러미터를 포함할 수 있습니다.

See Also: (관련 정보 보기)