Fonzit-crawler
Mix.install([
{:kino, "~> 0.14.0"},
{:floki, "~> 0.33.0"},
{:httpoison, "~> 2.2.1"}
])
Tietojen haku
input =
Kino.Input.text("Anna osoite", default: "https://fonzit.fi/meista/tiimi")
defmodule FonzitSivut do
def get_henkiloesittelyt(osoite) do
HTTPoison.get(osoite, [], follow_redirect: true)
|> then(fn {_, result} -> result.body end)
|> Floki.parse_document!()
|> Floki.find("li.d-tiimi a")
|> Floki.attribute("href")
|> Stream.map(&HTTPoison.get/1)
|> Stream.map(fn {_, result} -> result.body end)
|> Stream.map(&Floki.parse_document!/1)
|> Stream.map(&Floki.find(&1, "#main"))
|> Stream.map(&Floki.text/1)
end
end
osoite = Kino.Input.read(input)
tekstit =
FonzitSivut.get_henkiloesittelyt(osoite)
|> Enum.join("\n\n")
Kino.Download.new(
fn -> tekstit end,
filename: "tekstit.txt",
label: "Lataa tiedostona"
)
Kino.Text.new(tekstit)