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: (관련 정보 보기)
- HTTPoison documentation
- hackney on GitHub
- Erlang OTP
- Hex.pm (Elixir 라이브러리를 찾아보기)