Skip to content

Commit

Permalink
Adds support for 24Kitchen (#1461)
Browse files Browse the repository at this point in the history
* Adds support for 24Kitchen

* Update twentyfourkitchen.py
  • Loading branch information
jknndy authored Jan 14, 2025
1 parent 5b6dac3 commit f6f4b5b
Show file tree
Hide file tree
Showing 6 changed files with 6,958 additions and 0 deletions.
2 changes: 2 additions & 0 deletions recipe_scrapers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,7 @@
from .tineno import TineNo
from .tofoo import Tofoo
from .tudogostoso import TudoGostoso
from .twentyfourkitchen import TwentyFourKitchen
from .twopeasandtheirpod import TwoPeasAndTheirPod
from .uitpaulineskeukennl import UitPaulinesKeukenNL
from .unsophisticook import Unsophisticook
Expand Down Expand Up @@ -861,6 +862,7 @@
TineNo.host(): TineNo,
Tofoo.host(): Tofoo,
TudoGostoso.host(): TudoGostoso,
TwentyFourKitchen.host(): TwentyFourKitchen,
TwoPeasAndTheirPod.host(): TwoPeasAndTheirPod,
USAPears.host(): USAPears,
USDAMyPlate.host(): USDAMyPlate,
Expand Down
46 changes: 46 additions & 0 deletions recipe_scrapers/twentyfourkitchen.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
from ._abstract import AbstractScraper
from ._grouping_utils import group_ingredients
import re


class TwentyFourKitchen(AbstractScraper):
@classmethod
def host(cls):
return "24kitchen.nl"

def ingredient_groups(self):
groups = group_ingredients(
self.ingredients(),
self.soup,
".ingredient-list-title",
".recipe-ingredient",
)
if (
len(groups) == 1
and groups[0].purpose
and groups[0].purpose.strip() == self.schema.title()
):
groups[0].purpose = None
return groups

def instructions(self):
instructions = []

# Instructions format #1
preparation_steps = self.soup.select(
".preparation-step .field--name-field-text"
)
for step in preparation_steps:
text = step.get_text(strip=True)
if not text.lower().startswith("stap:"):
instructions.append(text)

# Instructions format #2
paragraph_steps = self.soup.select(".preparation-text p")
for step in paragraph_steps:
text = step.get_text(strip=True)
cleaned_instructions_text = re.sub(r"^Stap\s*\d+:?", "", text).strip()
if cleaned_instructions_text:
instructions.append(cleaned_instructions_text)

return "\n".join(instructions)
42 changes: 42 additions & 0 deletions tests/test_data/24kitchen.nl/twentyfourkitchen_1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"author": "24Kitchen",
"canonical_url": "https://www.24kitchen.nl/recepten/vegan-oliebollen",
"site_name": "24Kitchen",
"host": "24kitchen.nl",
"language": "nl",
"title": "Vegan oliebollen",
"ingredients": [
"500 gr bloem",
"500 ml plantaardige melk",
"7 gr gedroogde gist",
"50 gr plantaardige magarine",
"1 el fijne kristalsuiker",
"1 tl zout",
"zonnebloemolie (om in te frituren)",
"poedersuiker"
],
"instructions_list": [
"Verwarm de plantaardige melk in pan op laag vuur tot handwarm (lauwwarm). Voeg de gist en de suiker toe. Doe de plantaardige margarine erbij en laat smelten. Laat staan tot het mengsel begint te schuimen.",
"Zeef de bloem en mix het zout er doorheen. Voeg het schuimige gistmengsel toe en mix goed door.",
"Dek het beslag af met een vochtige theedoek en zet weg op een warme, tochtvrije plek. Laat het beslag 1 uur rijzen of tot het in volume verdubbeld is.",
"Verwarm de olie tot 180°C.",
"Roer het beslag door. Schep met een ijslepel bolletjes beslag in de hete olie. Bak zoveel oliebollen tegelijk als er in de pan passen zonder dat ze elkaar raken.",
"Bak de oliebollen in 6-8 minuten goudbruin en gaar. Draai ze halverwege om.",
"Laat de oliebollen uitlekken op keukenpapier en bestrooi ze met poedersuiker voor het serveren.",
"Verwarm de plantaardige melk in pan op laag vuur tot handwarm (lauwwarm). Voeg de gist en de suiker toe. Doe de plantaardige margarine erbij en laat smelten. Laat staan tot het mengsel begint te schuimen.",
"Zeef de bloem en mix het zout er doorheen. Voeg het schuimige gistmengsel toe en mix goed door.",
"Liever krentenbollen? Voeg gewelde krenten, stukjes appel of sinaasappel- of citroenschil toe aan je beslag.",
"Dek het beslag af met een vochtige theedoek en zet weg op een warme, tochtvrije plek. Laat het beslag 1 uur rijzen of tot het in volume verdubbeld is.",
"Verwarm de olie tot 180°C.",
"Roer het beslag door. Schep met een ijslepel bolletjes beslag in de hete olie. Bak zoveel oliebollen tegelijk als er in de pan passen zonder dat ze elkaar raken.",
"Bak de oliebollen in 6-8 minuten goudbruin en gaar. Draai ze halverwege om.",
"Laat de oliebollen uitlekken op keukenpapier en bestrooi ze met poedersuiker voor het serveren."
],
"yields": "4 servings",
"description": "Deze vegan oliebollen zijn knapperig van buiten, luchtig van binnen én hartststikke plantaardig. Probeer het recept van oliebollen-koning Hidde de Brabander.",
"total_time": 30,
"prep_time": 30,
"ratings": 5.0,
"ratings_count": 1,
"image": "https://www.24kitchen.nl/files/styles/social_media_share/public/2024-12/AdobeStock_340976387.jpeg?itok=FYrCCyX9"
}
Loading

0 comments on commit f6f4b5b

Please sign in to comment.