diff --git a/lib/link_preview/parsers/html.ex b/lib/link_preview/parsers/html.ex
index db722d9..d4b614a 100644
--- a/lib/link_preview/parsers/html.ex
+++ b/lib/link_preview/parsers/html.ex
@@ -17,7 +17,7 @@ defmodule LinkPreview.Parsers.Html do
def title(page, body) do
title =
body
- |> Floki.parse()
+ |> Floki.parse_document!()
|> Floki.find("title")
|> List.first()
|> get_text
@@ -66,7 +66,7 @@ defmodule LinkPreview.Parsers.Html do
def images(page, body) do
images =
body
- |> Floki.parse()
+ |> Floki.parse_document!()
|> Floki.attribute("img", "src")
|> Enum.map(&String.trim(&1))
|> maybe_limit
@@ -90,7 +90,7 @@ defmodule LinkPreview.Parsers.Html do
defp search_h(body, level) do
description =
body
- |> Floki.parse()
+ |> Floki.parse_document!()
|> Floki.find("h#{level}")
|> List.first()
|> get_text
diff --git a/lib/link_preview/parsers/opengraph.ex b/lib/link_preview/parsers/opengraph.ex
index 4db649f..d443c09 100644
--- a/lib/link_preview/parsers/opengraph.ex
+++ b/lib/link_preview/parsers/opengraph.ex
@@ -17,7 +17,7 @@ defmodule LinkPreview.Parsers.Opengraph do
def title(page, body) do
title =
body
- |> Floki.parse()
+ |> Floki.parse_document!()
|> Floki.find("meta[property^=\"og:title\"]")
|> Floki.attribute("content")
|> List.first()
@@ -37,7 +37,7 @@ defmodule LinkPreview.Parsers.Opengraph do
def description(page, body) do
description =
body
- |> Floki.parse()
+ |> Floki.parse_document!()
|> Floki.find("meta[property^=\"og:description\"]")
|> Floki.attribute("content")
|> List.first()
@@ -64,7 +64,7 @@ defmodule LinkPreview.Parsers.Opengraph do
def images(page, body) do
images =
body
- |> Floki.parse()
+ |> Floki.parse_document!()
|> Floki.find("meta[property^=\"og:image\"]")
|> Floki.attribute("content")
|> Enum.map(&String.trim(&1))
diff --git a/mix.exs b/mix.exs
index 3593aa6..a588534 100644
--- a/mix.exs
+++ b/mix.exs
@@ -63,7 +63,7 @@ defmodule LinkPreview.Mixfile do
defp deps do
[
# required
- {:floki, "~> 0.30"},
+ {:floki, "~> 0.38"},
{:finch, "~> 0.17"},
{:tesla, "~> 1.5"},
diff --git a/mix.lock b/mix.lock
index f9b3329..9df7f96 100644
--- a/mix.lock
+++ b/mix.lock
@@ -11,7 +11,7 @@
"excoveralls": {:hex, :excoveralls, "0.15.2", "809c1016660d80b28bbcd8cb7fd761791300def53345c1af5bd97db1330619ad", [:mix], [{:hackney, "~> 1.16", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "f359dda36f15ae885d3259a90919b09ae9318f37c583c403493fe23808b2b882"},
"exjsx": {:hex, :exjsx, "4.0.0", "60548841e0212df401e38e63c0078ec57b33e7ea49b032c796ccad8cde794b5c", [:mix], [{:jsx, "~> 2.8.0", [hex: :jsx, repo: "hexpm", optional: false]}], "hexpm", "32e95820a97cffea67830e91514a2ad53b888850442d6d395f53a1ac60c82e07"},
"finch": {:hex, :finch, "0.18.0", "944ac7d34d0bd2ac8998f79f7a811b21d87d911e77a786bc5810adb75632ada4", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.6 or ~> 1.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "69f5045b042e531e53edc2574f15e25e735b522c37e2ddb766e15b979e03aa65"},
- "floki": {:hex, :floki, "0.34.0", "002d0cc194b48794d74711731db004fafeb328fe676976f160685262d43706a8", [:mix], [], "hexpm", "9c3a9f43f40dde00332a589bd9d389b90c1f518aef500364d00636acc5ebc99c"},
+ "floki": {:hex, :floki, "0.38.0", "62b642386fa3f2f90713f6e231da0fa3256e41ef1089f83b6ceac7a3fd3abf33", [:mix], [], "hexpm", "a5943ee91e93fb2d635b612caf5508e36d37548e84928463ef9dd986f0d1abd9"},
"hackney": {:hex, :hackney, "1.18.1", "f48bf88f521f2a229fc7bae88cf4f85adc9cd9bcf23b5dc8eb6a1788c662c4f6", [:rebar3], [{:certifi, "~> 2.9.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~> 6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~> 1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~> 1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "a4ecdaff44297e9b5894ae499e9a070ea1888c84afdd1fd9b7b2bc384950128e"},
"hpax": {:hex, :hpax, "0.1.2", "09a75600d9d8bbd064cdd741f21fc06fc1f4cf3d0fcc335e5aa19be1a7235c84", [:mix], [], "hexpm", "2c87843d5a23f5f16748ebe77969880e29809580efdaccd615cd3bed628a8c13"},
"html_entities": {:hex, :html_entities, "0.5.2", "9e47e70598da7de2a9ff6af8758399251db6dbb7eebe2b013f2bbd2515895c3c", [:mix], [], "hexpm", "c53ba390403485615623b9531e97696f076ed415e8d8058b1dbaa28181f4fdcc"},