diff --git a/recipe_scrapers/__init__.py b/recipe_scrapers/__init__.py
index 24edb2548..18026d657 100644
--- a/recipe_scrapers/__init__.py
+++ b/recipe_scrapers/__init__.py
@@ -314,6 +314,7 @@
from .justbento import JustBento
from .justinesnacks import JustineSnacks
from .justonecookbook import JustOneCookbook
+from .kalcirecept import KalciRecept
from .kalejunkie import KaleJunkie
from .kellyscleankitchen import KellysCleanKitchen
from .kennethtemple import KennethTemple
@@ -946,6 +947,7 @@
JustBento.host(): JustBento,
JustineSnacks.host(): JustineSnacks,
JustOneCookbook.host(): JustOneCookbook,
+ KalciRecept.host(): KalciRecept,
KaleJunkie.host(): KaleJunkie,
KellysCleanKitchen.host(): KellysCleanKitchen,
KennethTemple.host(): KennethTemple,
diff --git a/recipe_scrapers/kalcirecept.py b/recipe_scrapers/kalcirecept.py
new file mode 100644
index 000000000..98d3b38dc
--- /dev/null
+++ b/recipe_scrapers/kalcirecept.py
@@ -0,0 +1,74 @@
+from ._abstract import AbstractScraper
+from ._utils import normalize_string
+
+
+class KalciRecept(AbstractScraper):
+ @classmethod
+ def host(cls):
+ return "kalcirecept.hu"
+
+ def site_name(self):
+ og_site_name = self.soup.find("meta", {"property": "og:site_name"})
+ if og_site_name:
+ return og_site_name.get("content", "")
+ return "Kálci receptjei"
+
+ def title(self):
+ h1 = self.soup.find("h1", class_="text-white")
+ if h1:
+ return normalize_string(h1.get_text())
+ og_title = self.soup.find("meta", {"property": "og:title"})
+ if og_title:
+ title = og_title.get("content", "")
+ sep = title.rfind(" - ")
+ if sep != -1:
+ title = title[:sep]
+ return normalize_string(title)
+ return None
+
+ def image(self):
+ og_image = self.soup.find("meta", {"property": "og:image"})
+ if og_image:
+ return og_image.get("content", "")
+ return None
+
+ def _find_heading(self, text):
+ for h1 in self.soup.find_all("h1"):
+ if h1.get_text(strip=True) == text:
+ return h1
+ return None
+
+ def ingredients(self):
+ heading = self._find_heading("Hozzávalók")
+ if not heading:
+ return []
+ container = heading.find_next_sibling()
+ if not container:
+ return []
+ ingredients = []
+ for li in container.find_all("li"):
+ spans = li.find_all("span")
+ if spans:
+ parts = [
+ normalize_string(s.get_text())
+ for s in spans
+ if s.get_text(strip=True)
+ ]
+ text = " ".join(parts)
+ if text:
+ ingredients.append(text)
+ return ingredients
+
+ def instructions(self):
+ heading = self._find_heading("A recept")
+ if not heading:
+ return ""
+ container = heading.find_next_sibling()
+ if not container:
+ return ""
+ steps = []
+ for p in container.find_all("p"):
+ text = normalize_string(p.get_text())
+ if text:
+ steps.append(text)
+ return "\n".join(steps)
diff --git a/tests/test_data/kalcirecept.hu/kalcirecept.json b/tests/test_data/kalcirecept.hu/kalcirecept.json
new file mode 100644
index 000000000..c15f79ec5
--- /dev/null
+++ b/tests/test_data/kalcirecept.hu/kalcirecept.json
@@ -0,0 +1,22 @@
+{
+ "canonical_url": "https://www.kalcirecept.hu/hu/receptek/csokis-kuglof",
+ "site_name": "Kálci receptjei",
+ "host": "kalcirecept.hu",
+ "language": "hu",
+ "title": "Csokis kuglóf",
+ "ingredients": [
+ "4 db tojás (M-es)",
+ "250 g porcukor",
+ "1 csomag (8 g) vaníliás cukor",
+ "1 dl (100 g) tehéntej (2,8%)",
+ "1 dl (92 g) napraforgóolaj",
+ "150 g búzafinomliszt (BL 55)",
+ "50 g (5 ek) holland kakaópor",
+ "1/2 csomag (6 g) sütőpor",
+ "1 tábla (90-100 g) étcsokoládé"
+ ],
+ "instructions_list": [
+ "A tojásokat szétválasztjuk. A sárgáját a porcukorral és a vaníliás cukorral a tej hozzáadásával habosra keverjük, majd belecsorgatjuk az olajat és egyneműre keverjük. A tojásfehérjét külön edényben kemény habbá verjük, majd óvatos mozdulatokkal összeforgatjuk a sárgás masszával. A lisztet, a kakaóport és a sütőport összekeverjük, ezt is a tésztához forgatjuk, végül hozzáadjuk az apróra vágott étcsokoládét. A masszát kivajazott, kilisztezett kuglófformába öntjük, majd 180 fokra előmelegített sütőben 50 percig sütjük, a végén tűpróbával ellenőrizzük."
+ ],
+ "image": "https://www.kalcirecept.hu/uploads/01KFKKBA2A56N63AFB95109YGD.png"
+}
diff --git a/tests/test_data/kalcirecept.hu/kalcirecept.testhtml b/tests/test_data/kalcirecept.hu/kalcirecept.testhtml
new file mode 100644
index 000000000..fb60d328a
--- /dev/null
+++ b/tests/test_data/kalcirecept.hu/kalcirecept.testhtml
@@ -0,0 +1,2346 @@
+
+
+
+
+
+
+
+
+
+
+
+
+Csokis kuglóf recept – egyszerű és igazán csokis - Kálci receptjei
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Írd be a keresett kifejezést
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Írd be a keresett kifejezést
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hagyományos
+
+
+
+
+ Csokis kuglóf
+
+
+
+
+ Desszert
+
+
+
+ Mentés a receptgyűjteménybe
+
+
+
+
+
Belépés
+
Lépj be, vagy regisztrálj és mentsd el kedvenc receptjeidet gyűjteményeid közé.
+
+
+
+
+
+
Regisztráció
+
Nézd meg a regisztrációval járó előnyöket!
+
Regisztráció
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ez egy olyan kuglóf, aminél nem volt cél a márványosság, a csíkosság vagy a látványos trükközés. Csak egy igazán csokis, szaftos tészta, ami szeleteléskor is egyben marad, és másnap is ugyanolyan jólesik, mint frissen. Sok verzió után ennél az aránynál állt össze végleg, nálunk ez lett az csokis kuglóf.
+
+
+
+
+
+
+ Hozzávalók
+
+
+
+
+
+
+
+
+ 4 db
+ tojás (M-es)
+
+
+
+
+ 250 g
+ porcukor
+
+
+
+
+ 1 csomag (8 g)
+ vaníliás cukor
+
+
+
+
+ 1 dl (100 g)
+ tehéntej (2,8%)
+
+
+
+
+ 1 dl (92 g)
+ napraforgóolaj
+
+
+
+
+ 150 g
+ búzafinomliszt (BL 55)
+
+
+
+
+ 50 g (5 ek)
+ holland kakaópor
+
+
+
+
+ 1/2 csomag (6 g)
+ sütőpor
+
+
+
+
+ 1 tábla (90-100 g)
+ étcsokoládé
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A recept
+
+
+
+
+
+
+ A tojásokat szétválasztjuk. A sárgáját a porcukorral és a vaníliás cukorral a tej hozzáadásával habosra keverjük, majd belecsorgatjuk az olajat és egyneműre keverjük. A tojásfehérjét külön edényben kemény habbá verjük, majd óvatos mozdulatokkal összeforgatjuk a sárgás masszával. A lisztet, a kakaóport és a sütőport összekeverjük, ezt is a tésztához forgatjuk, végül hozzáadjuk az apróra vágott étcsokoládét. A masszát kivajazott, kilisztezett kuglófformába öntjük, majd 180 fokra előmelegített sütőben 50 percig sütjük, a végén tűpróbával ellenőrizzük.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ receptek
+ További receptek hagyományos kategóriában
+
+
+
+
+
+
+
+
+
+ receptek
+ További receptek desszert kategóriában
+
+
+
+
+
Összes recept
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ blog
+ Tippek Kálcitól
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hírlevél
+ Kálci receptjei a postafiókodban
+
+
Iratkozz fel hírlevelünkre, és első kézből értesülhetsz a legújabb receptjeimről, sütési tippekről és a megjelenő könyvekről! Ne hagyd ki az exkluzív ajánlatokat és különleges inspirációkat, amelyek segítenek még több finomságot varázsolni a konyhádba.
+
+ kérek hírlevelet az új receptekről!
+
+
+ Feliratkozom!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Iratkozz fel hírlevelemre hogy értesülj az újdonságokról!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Menüpontok
+
+
+
+
+
+
+
+
+
+
+ Kövess az interneten
+
+
+
+
+
+ Hírlevél felirakozás
+
+ Szeretnél első kézből értesülni az új receptekről?
+
Feliratkozom!
+
+
+
+
+
+ Iratkozz fel hírlevelemre hogy értesülj az újdonságokról!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Kosár
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tovább vásárolok
+
+
+
+
+
+
+
+
Összesen fizetendő
+
+ 0 Ft
+
+
+
Megveszem
+
+
+
+
+
+
+
+
+
+
+