【작은 재료】 즉시 지브리의 이미지를 다운로드합니다 (Elixir)
8347 단어 Elixir
소개
@mine820 님의 【작은 재료】 즉시 지브리 이미지 다운로드을 쳐다 보았습니다.
0. 프로젝트 만들기
$ mix new ghibli_download
$ cd ghibli_download
1. Elixir 소개
mix.exs defp deps do
[
{:httpoison, "~> 1.6"}
]
end
$ mix deps.get
$ mix new ghibli_download
$ cd ghibli_download
mix.exs
defp deps do
[
{:httpoison, "~> 1.6"}
]
end
$ mix deps.get
2. 소스 코드 작성
lib/ghibli_download.exdefmodule GhibliDownload do
@works ~W{marnie kaguyahime kazetachinu kokurikozaka karigurashi ponyo ged chihiro}
@url_base "http://www.ghibli.jp/gallery"
@ext ".jpg"
@local_base "#{System.user_home()}/memo/ghibli"
def run do
@works
|> Enum.flat_map(&urls(&1, 50))
|> Enum.map(fn {url, file_name} ->
IO.puts(url)
download(url, file_name)
Process.sleep(1000 * 20)
end)
end
defp urls(work, num) do
1..num
|> Enum.map(&{"#{@url_base}/#{file_name(work, &1)}", file_name(work, &1)})
end
defp file_name(work, num) do
"#{work}#{Integer.to_string(num) |> String.pad_leading(3, "0")}#{@ext}"
end
defp download(url, file_name) do
HTTPoison.get!(url)
|> Map.get(:body)
|> (fn content -> File.write("#{@local_base}/#{file_name}", content) end).()
end
end
defmodule GhibliDownload do
@works ~W{marnie kaguyahime kazetachinu kokurikozaka karigurashi ponyo ged chihiro}
@url_base "http://www.ghibli.jp/gallery"
@ext ".jpg"
@local_base "#{System.user_home()}/memo/ghibli"
def run do
@works
|> Enum.flat_map(&urls(&1, 50))
|> Enum.map(fn {url, file_name} ->
IO.puts(url)
download(url, file_name)
Process.sleep(1000 * 20)
end)
end
defp urls(work, num) do
1..num
|> Enum.map(&{"#{@url_base}/#{file_name(work, &1)}", file_name(work, &1)})
end
defp file_name(work, num) do
"#{work}#{Integer.to_string(num) |> String.pad_leading(3, "0")}#{@ext}"
end
defp download(url, file_name) do
HTTPoison.get!(url)
|> Map.get(:body)
|> (fn content -> File.write("#{@local_base}/#{file_name}", content) end).()
end
end
3. 실행
$ iex -S mix
iex> GhibliDownload.run
$ iex -S mix
iex> GhibliDownload.run
Wrapping Up
Reference
이 문제에 관하여(【작은 재료】 즉시 지브리의 이미지를 다운로드합니다 (Elixir)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/torifukukaiou/items/0bd782a6f9228f6a95d5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)