Skip to content

Commit

Permalink
feat: add parser for wdr.de (#1460)
Browse files Browse the repository at this point in the history
  • Loading branch information
tom-anders authored Jan 14, 2025
1 parent 3301d0e commit a5937f7
Show file tree
Hide file tree
Showing 6 changed files with 2,828 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 @@ -431,6 +431,7 @@
from .veroniquecloutier import VeroniqueCloutier
from .waitrose import Waitrose
from .watchwhatueat import WatchWhatUEat
from .wdr import WDR
from .wearenotmartha import WeAreNotMartha
from .wedishitup import WeDishItUp
from .weightwatchers import WeightWatchers
Expand Down Expand Up @@ -876,6 +877,7 @@
Vegetarbloggen.host(): Vegetarbloggen,
Vegolosi.host(): Vegolosi,
VeroniqueCloutier.host(): VeroniqueCloutier,
WDR.host(): WDR,
Waitrose.host(): Waitrose,
WatchWhatUEat.host(): WatchWhatUEat,
WeAreNotMartha.host(): WeAreNotMartha,
Expand Down
45 changes: 45 additions & 0 deletions recipe_scrapers/wdr.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
from ._abstract import AbstractScraper
from ._utils import normalize_string
import re


class WDR(AbstractScraper):
@classmethod
def host(cls):
return "www1.wdr.de"

def site_name(self):
return "WDR"

def title(self):
return self.soup.find("meta", property="og:title")["content"]

def ingredients(self):
header = self.soup.find("h2", string=re.compile(r"^Zutaten.*"))

# find <li> siblings until the next <h2> tag:
ingredients = []
for sibling in header.find_next_siblings():
if sibling.name == "h2":
break
items = sibling.find_all("li")
if len(items) > 0:
ingredients.extend([normalize_string(li.get_text()) for li in items])
return ingredients

def image(self):
return f'https://{self.host()}{self.soup.find("picture").find_next("source")["srcset"]}'

def instructions(self) -> str:
header = self.soup.find("h2", string="Zubereitung")
# Some recipes have the instructions in <li> tags, others in <p> tags
return "\n".join(
[
normalize_string(li.get_text())
for li in header.findNextSibling().find_all("li")
]
+ [normalize_string(p.get_text()) for p in header.find_next_siblings("p")]
)

def description(self):
return self.soup.find("meta", {"name": "Description"})["content"]
36 changes: 36 additions & 0 deletions tests/test_data/www1.wdr.de/wdr_1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"canonical_url": "https://www1.wdr.de/verbraucher/rezepte/alle-rezepte/kuerbis-tarte-104.html",
"site_name": "WDR",
"host": "www1.wdr.de",
"language": "de",
"title": "Kürbis-Tarte mit Blauschimmelkäse und Salbei",
"ingredients": [
"300 g Mehl",
"½ TL Salz",
"1 gestrichener TL Backpulver",
"125 g Butter",
"1 Ei",
"500 g Butternut-Kürbis, geputzt und entkernt gewogen",
"100 ml Sahne",
"150 g milder Blauschimmelkäse",
"3 Eier",
"150 g Crème fraîche",
"15 frische Salbeiblätter",
"50 g geriebener Bergkäse",
"Salz, Pfeffer, Zitronensaft"
],
"instructions_list": [
"Für den Mürbeteig die kalte Butter in kleine Würfel schneiden. Das Mehl mit dem Backpulver mischen, dann mit den Knethaken des Rührgeräts die Butterwürfel einrühren, bis Streusel entstehen. Jetzt das Ei dazugeben und weiterrühren, bis sich kurz darauf ein zusammenhängender Teig bildet. Wenn er nicht geschmeidig genug sein sollte, noch etwas kaltes Wasser einkneten.",
"Den Teig mit den Händen schnell kurz und kräftig nachkneten, zu einer Kugel formen, in Klarsichtfolie wickeln und im Kühlschrank 30 Minuten ruhen lassen.",
"Dann den Mürbeteig ausrollen und die gebutterte Tarteform damit auslegen, im Kühlschrank kaltstellen.",
"Für den Belag den Kürbis schälen, in Stücke schneiden, salzen und mit der Sahne im geschlossenen Topf in etwa 30 Minuten weichkochen.",
"Etwas gröber als ein Kartoffelpüree stampfen und abkühlen lassen.",
"Die grob zerschnittenen Salbeiblätter in etwas Olivenöl ganz kurz bei niedriger Hitze andünsten.",
"Die Eier und die Crème fraîche unter den Kürbisstampf ziehen, dann die Salbeiblätter. Mit Salz, Pfeffer und Zitronensaft abschmecken.",
"In die kühle Form mit dem Teig die Füllung geben.",
"Backofen auf 200 Grad vorheizen. Blauschimmelkäse in kleine Würfel schneiden und gleichmäßig auf der Füllung verteilen. Bergkäse darüber streuen.",
"Etwa 40 Minuten backen, 5 Minuten außerhalb des Ofens ruhen lassen und servieren."
],
"description": "Ein gold-gelber Mürbeteig, gekrönt mit Salbeiblättern. Zusammen mit Blauschimmelkäse macht diese Kombination den Charme dieser Delikatesse aus. Eine saftige und trotzdem luftige Textur charakterisiert eine Kürbis-Tarte, von der man gar nicht lassen kann.",
"image": "https://www1.wdr.de/radio/wdr5/sendungen/alles-in-butter/kuerbis-164~_v-ARDFotogalerie.jpg"
}
Loading

0 comments on commit a5937f7

Please sign in to comment.