mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-01 04:10:06 -05:00
improved recipe parser, added tests, cleaned up resources
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
import json
|
||||
import random
|
||||
import re
|
||||
from random import random
|
||||
from json import JSONDecodeError
|
||||
|
||||
import microdata
|
||||
from bs4 import BeautifulSoup
|
||||
from django.http import JsonResponse
|
||||
from django.utils.dateparse import parse_duration
|
||||
from django.utils.translation import gettext as _
|
||||
@@ -8,9 +12,39 @@ from django.utils.translation import gettext as _
|
||||
from cookbook.models import Keyword
|
||||
|
||||
|
||||
def find_recipe_json(ld_json, url):
|
||||
ld_json['org'] = str(ld_json)
|
||||
def get_from_html(html_text, url):
|
||||
soup = BeautifulSoup(html_text, "html.parser")
|
||||
|
||||
# first try finding ld+json as its most common
|
||||
for ld in soup.find_all('script', type='application/ld+json'):
|
||||
try:
|
||||
ld_json = json.loads(ld.string)
|
||||
if type(ld_json) != list:
|
||||
ld_json = [ld_json]
|
||||
|
||||
for ld_json_item in ld_json:
|
||||
# recipes type might be wrapped in @graph type
|
||||
if '@graph' in ld_json_item:
|
||||
for x in ld_json_item['@graph']:
|
||||
if '@type' in x and x['@type'] == 'Recipe':
|
||||
ld_json_item = x
|
||||
|
||||
if '@type' in ld_json_item and ld_json_item['@type'] == 'Recipe':
|
||||
return find_recipe_json(ld_json_item, url)
|
||||
except JSONDecodeError:
|
||||
JsonResponse({'error': True, 'msg': _('The requested site does not provided malformed data and cannot be read.')}, status=400)
|
||||
|
||||
# now try to find microdata
|
||||
items = microdata.get_items(html_text)
|
||||
for i in items:
|
||||
md_json = json.loads(i.json())
|
||||
if 'schema.org/Recipe' in str(md_json['type']):
|
||||
return find_recipe_json(md_json['properties'], url)
|
||||
|
||||
return JsonResponse({'error': True, 'msg': _('The requested site does not provide any recognized data format to import the recipe from.')}, status=400)
|
||||
|
||||
|
||||
def find_recipe_json(ld_json, url):
|
||||
if type(ld_json['name']) == list:
|
||||
try:
|
||||
ld_json['name'] = ld_json['name'][0]
|
||||
@@ -59,7 +93,7 @@ def find_recipe_json(ld_json, url):
|
||||
ingredient = " ".join(ingredient_split)
|
||||
|
||||
if ingredient:
|
||||
ingredients.append({'amount': amount, 'unit': {'text': unit, 'id': round(random() * 1000)}, 'ingredient': {'text': ingredient, 'id': round(random() * 1000)}, 'original': x})
|
||||
ingredients.append({'amount': amount, 'unit': {'text': unit, 'id': random.randrange(10000, 99999)}, 'ingredient': {'text': ingredient, 'id': random.randrange(10000, 99999)}, 'original': x})
|
||||
|
||||
ld_json['recipeIngredient'] = ingredients
|
||||
else:
|
||||
@@ -143,4 +177,8 @@ def find_recipe_json(ld_json, url):
|
||||
else:
|
||||
ld_json['prepTime'] = 0
|
||||
|
||||
for key in list(ld_json):
|
||||
if key not in ['prepTime', 'cookTime', 'image', 'recipeInstructions', 'keywords', 'name', 'recipeIngredient']:
|
||||
ld_json.pop(key, None)
|
||||
|
||||
return JsonResponse(ld_json)
|
||||
|
||||
0
cookbook/tests/other/__init__.py
Normal file
0
cookbook/tests/other/__init__.py
Normal file
28
cookbook/tests/other/test_edits_recipe.py
Normal file
28
cookbook/tests/other/test_edits_recipe.py
Normal file
@@ -0,0 +1,28 @@
|
||||
import json
|
||||
|
||||
from cookbook.helper.recipe_url_import import get_from_html
|
||||
from cookbook.tests.test_setup import TestBase
|
||||
|
||||
|
||||
class TestEditsRecipe(TestBase):
|
||||
|
||||
def test_ld_json(self):
|
||||
test_list = [
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_1.html', 'result_length': 3128},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_2.html', 'result_length': 1450},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_3.html', 'result_length': 1545},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_4.html', 'result_length': 1657},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_invalid.html', 'result_length': 115},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_itemList.html', 'result_length': 3131},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_multiple.html', 'result_length': 1546},
|
||||
{'file': 'cookbook/tests/resources/websites/micro_data_1.html', 'result_length': 1022},
|
||||
{'file': 'cookbook/tests/resources/websites/micro_data_2.html', 'result_length': 1384},
|
||||
{'file': 'cookbook/tests/resources/websites/micro_data_3.html', 'result_length': 1100},
|
||||
{'file': 'cookbook/tests/resources/websites/micro_data_4.html', 'result_length': 4231},
|
||||
]
|
||||
|
||||
for test in test_list:
|
||||
with open(test['file'], 'rb') as file:
|
||||
parsed_content = json.loads(get_from_html(file.read(), 'test_url').content)
|
||||
self.assertEqual(len(str(parsed_content)), test['result_length'])
|
||||
file.close()
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -1,62 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de-DE" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
|
||||
<head>
|
||||
<title>Gyros vom Drehspieß für Zuhause - Einfaches Rezept - Die Küche brennt</title>
|
||||
<!-- Squirrly SEO Plugin 10.0.09, visit: https://plugin.squirrly.co/ -->
|
||||
<meta name="robots" content="index,follow">
|
||||
<meta name="googlebot" content="index,follow,max-snippet:-1,max-image-preview:large,max-video-preview:-1">
|
||||
<meta name="bingbot" content="index,follow,max-snippet:-1,max-image-preview:large,max-video-preview:-1">
|
||||
<meta name="description" content="Wir wollten schon lange mal Gyros vom Drehspieß grillen - also ran an den Grill!" />
|
||||
<meta name="keywords" content="Dönerspieß grillen,Döner selber machen,Döner Drehspieß,Döner Kebab Grillen,Gyros,Döner,Drehspieß,Fladenbrot,Grillen,gyros,gyros vom drehspies,Joghurt,Kebab" />
|
||||
<link rel="canonical" href="https://www.diekuechebrennt.de/gyros-vom-drehspiess-fuer-zuhause-rezept/" />
|
||||
<link rel="alternate" type="application/rss+xml" href="https://www.diekuechebrennt.de/sitemap.xml" />
|
||||
<link rel="shortcut icon" href="https://www.diekuechebrennt.de/favicon.icon" />
|
||||
<link rel="apple-touch-icon" sizes="32x32" href="https://www.diekuechebrennt.de/touch-icon.png" />
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="https://www.diekuechebrennt.de/touch-icon76.png" />
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="https://www.diekuechebrennt.de/touch-icon120.png" />
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="https://www.diekuechebrennt.de/touch-icon152.png" />
|
||||
<meta name="dc.language" content="de-DE" />
|
||||
<meta name="dc.language.iso" content="de_DE" />
|
||||
<meta name="dc.publisher" content="Die Küche brennt" />
|
||||
<meta name="dc.title" content="Gyros vom Drehspieß für Zuhause - Einfaches Rezept - Die Küche brennt" />
|
||||
<meta name="dc.description" content="Wir wollten schon lange mal Gyros vom Drehspieß grillen - also ran an den Grill!" />
|
||||
<meta name="dc.date.issued" content="2019-07-01" />
|
||||
<meta property="og:url" content="https://www.diekuechebrennt.de/gyros-vom-drehspiess-fuer-zuhause-rezept/" />
|
||||
<meta property="og:title" content="Gyros vom Drehspieß für Zuhause - Einfaches Rezept - Die Küche brennt" />
|
||||
<meta property="og:description" content="Wir wollten schon lange mal Gyros vom Drehspieß grillen - also ran an den Grill!" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:image" content="https://www.diekuechebrennt.de/wp-content/uploads/2019/07/gyros-vom-drehspiess-fuer-zuhause-rezept-joghurt.jpg" />
|
||||
<meta property="og:image:width" content="585" />
|
||||
<meta property="og:image:height" content="878" />
|
||||
<meta property="og:image:type" content="image/jpeg" />
|
||||
<meta property="og:site_name" content="Die Küche brennt" />
|
||||
<meta property="og:locale" content="de_DE" />
|
||||
<meta property="fb:app_id" content="128089181169331" />
|
||||
<meta property="article:published_time" content="2019-07-01 10:57:00" />
|
||||
<meta property="article:modified_time" content="2020-04-16 10:59:49" />
|
||||
<meta property="article:section" content="Fleisch+Geflügel" />
|
||||
<meta property="article:tag" content="Dönerspieß grillen" />
|
||||
<meta property="article:tag" content="Döner selber machen" />
|
||||
<meta property="article:tag" content="Döner Drehspieß" />
|
||||
<meta property="article:tag" content="Döner Kebab Grillen" />
|
||||
<meta property="article:tag" content="Gyros" />
|
||||
<meta property="article:tag" content="Döner" />
|
||||
<meta property="article:tag" content="Drehspieß" />
|
||||
<meta property="article:tag" content="Fladenbrot" />
|
||||
<meta property="article:tag" content="Grillen" />
|
||||
<meta property="article:tag" content="gyros" />
|
||||
<meta property="article:tag" content="gyros vom drehspies" />
|
||||
<meta property="article:tag" content="Joghurt" />
|
||||
<meta property="article:tag" content="Kebab" />
|
||||
<meta property="article:publisher" content="https://www.facebook.com/diekuechebrennt/" />
|
||||
<meta property="twitter:url" content="https://www.diekuechebrennt.de/gyros-vom-drehspiess-fuer-zuhause-rezept/" />
|
||||
<meta property="twitter:title" content="Gyros vom Drehspieß für Zuhause - Einfaches Rezept - Die Küche brennt" />
|
||||
<meta property="twitter:description" content="Wir wollten schon lange mal Gyros vom Drehspieß grillen - also ran an den Grill!" />
|
||||
<meta property="twitter:image" content="https://www.diekuechebrennt.de/wp-content/uploads/2019/07/gyros-vom-drehspiess-fuer-zuhause-rezept-joghurt.jpg" />
|
||||
<meta property="twitter:domain" content="Die Küche brennt" />
|
||||
<meta property="twitter:card" content="summary" />
|
||||
<script async src='https://www.google-analytics.com/analytics.js'></script><script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-115740308-1', 'auto');ga('send', 'pageview');</script>
|
||||
<script type="application/ld+json">{"@graph":[{"@context":"https:\/\/schema.org\/","@type":"BreadcrumbList","@id":"https:\/\/www.diekuechebrennt.de\/gyros-vom-drehspiess-fuer-zuhause-rezept\/#BreadcrumbList","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https:\/\/www.diekuechebrennt.de","name":"Die Küche brennt - Foodblog übers Essen, Trinken, Grillen und Backen"}},{"@type":"ListItem","position":"2","item":{"@id":"https:\/\/www.diekuechebrennt.de\/category\/grillen-grill-rezepte\/","name":"Grillen"}},{"@type":"ListItem","position":"3","item":{"@id":"https:\/\/www.diekuechebrennt.de\/category\/grillen-grill-rezepte\/fleisch-gefluegel\/","name":"Fleisch+Geflügel"}},{"@type":"ListItem","position":"4","item":{"@id":"https:\/\/www.diekuechebrennt.de\/category\/grillen-grill-rezepte\/","name":"Grillen"}},{"@type":"ListItem","position":"5","item":{"@id":"https:\/\/www.diekuechebrennt.de\/category\/werbung\/","name":"Werbung"}},{"@type":"ListItem","position":"6","item":{"@id":"https:\/\/www.diekuechebrennt.de\/gyros-vom-drehspiess-fuer-zuhause-rezept\/","name":"Gyros vom Drehspieß für Zuhause - Einfaches Rezept - Die Küche brennt"}}]},{"@context":"https:\/\/schema.org\/","@type":"Article","@id":"https:\/\/www.diekuechebrennt.de\/gyros-vom-drehspiess-fuer-zuhause-rezept\/#Article","url":"https:\/\/www.diekuechebrennt.de\/gyros-vom-drehspiess-fuer-zuhause-rezept\/","name":"Gyros vom Drehspieß für Zuhause - Einfaches Rezept - Die Küche brennt","headline":"Wir wollten schon lange mal Gyros vom Drehspieß grillen - also ran an den Grill!","mainEntityOfPage":{"@type":"WebPage","url":"https:\/\/www.diekuechebrennt.de\/gyros-vom-drehspiess-fuer-zuhause-rezept\/"},"datePublished":"2019-07-01T10:57:00+00:00","dateModified":"2020-04-16T10:59:49+00:00","image":{"@type":"ImageObject","url":"https:\/\/www.diekuechebrennt.de\/wp-content\/uploads\/2019\/07\/gyros-vom-drehspiess-fuer-zuhause-rezept-joghurt.jpg","height":"878","width":"585"},"author":{"@type":"Person","url":"https:\/\/www.diekuechebrennt.de","name":"Die Küche brennt"},"publisher":{"@type":"Organization","url":"https:\/\/www.diekuechebrennt.de\/gyros-vom-drehspiess-fuer-zuhause-rezept\/","name":"Die Küche brennt","logo":{"@type":"ImageObject","url":"https:\/\/www.diekuechebrennt.de\/favicon.ico"}},"keywords":"Dönerspieß grillen,Döner selber machen,Döner Drehspieß,Döner Kebab Grillen,Gyros"}]}</script>
|
||||
<<script type="application/ld+json">{"@graph":[{"@context":"https:\/\/schema.org\/","@type":"BreadcrumbList","@id":"https:\/\/www.diekuechebrennt.de\/gyros-vom-drehspiess-fuer-zuhause-rezept\/#BreadcrumbList","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https:\/\/www.diekuechebrennt.de","name":"Die Küche brennt - Foodblog übers Essen, Trinken, Grillen und Backen"}},{"@type":"ListItem","position":"2","item":{"@id":"https:\/\/www.diekuechebrennt.de\/category\/grillen-grill-rezepte\/","name":"Grillen"}},{"@type":"ListItem","position":"3","item":{"@id":"https:\/\/www.diekuechebrennt.de\/category\/grillen-grill-rezepte\/fleisch-gefluegel\/","name":"Fleisch+Geflügel"}},{"@type":"ListItem","position":"4","item":{"@id":"https:\/\/www.diekuechebrennt.de\/category\/grillen-grill-rezepte\/","name":"Grillen"}},{"@type":"ListItem","position":"5","item":{"@id":"https:\/\/www.diekuechebrennt.de\/category\/werbung\/","name":"Werbung"}},{"@type":"ListItem","position":"6","item":{"@id":"https:\/\/www.diekuechebrennt.de\/gyros-vom-drehspiess-fuer-zuhause-rezept\/","name":"Gyros vom Drehspieß für Zuhause - Einfaches Rezept - Die Küche brennt"}}]},{"@context":"https:\/\/schema.org\/","@type":"Article","@id":"https:\/\/www.diekuechebrennt.de\/gyros-vom-drehspiess-fuer-zuhause-rezept\/#Article","url":"https:\/\/www.diekuechebrennt.de\/gyros-vom-drehspiess-fuer-zuhause-rezept\/","name":"Gyros vom Drehspieß für Zuhause - Einfaches Rezept - Die Küche brennt","headline":"Wir wollten schon lange mal Gyros vom Drehspieß grillen - also ran an den Grill!","mainEntityOfPage":{"@type":"WebPage","url":"https:\/\/www.diekuechebrennt.de\/gyros-vom-drehspiess-fuer-zuhause-rezept\/"},"datePublished":"2019-07-01T10:57:00+00:00","dateModified":"2020-04-16T10:59:49+00:00","image":{"@type":"ImageObject","url":"https:\/\/www.diekuechebrennt.de\/wp-content\/uploads\/2019\/07\/gyros-vom-drehspiess-fuer-zuhause-rezept-joghurt.jpg","height":"878","width":"585"},"author":{"@type":"Person","url":"https:\/\/www.diekuechebrennt.de","name":"Die Küche brennt"},"publisher":{"@type":"Organization","url":"https:\/\/www.diekuechebrennt.de\/gyros-vom-drehspiess-fuer-zuhause-rezept\/","name":"Die Küche brennt","logo":{"@type":"ImageObject","url":"https:\/\/www.diekuechebrennt.de\/favicon.ico"}},"keywords":"Dönerspieß grillen,Döner selber machen,Döner Drehspieß,Döner Kebab Grillen,Gyros"}]}</script>
|
||||
<!-- /Squirrly SEO Plugin -->
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
|
||||
@@ -1,723 +1,2 @@
|
||||
<!doctype html>
|
||||
<html lang="de-DE">
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta charset="utf-8" />
|
||||
|
||||
<meta name="author" content="GuteKueche.de" />
|
||||
<meta name="copyright" content= "GuteKueche.de" />
|
||||
|
||||
<meta name="description" content="Mamis feiner Schokopudding kommt bei Groß und Klein gut an. Das Rezept ergibt eine leckere Nachspeise." /><title>Mamis feiner Schokopudding - Rezept | GuteKueche.de</title>
|
||||
|
||||
<link rel="amphtml" href="https://amp.gutekueche.de/mamis-feiner-schokopudding-rezept-4274" />
|
||||
|
||||
<link rel="shortcut icon" type="image/x-icon" href="https://cdn.gutekueche.de/assets/img/icon/favicon.ico">
|
||||
<link rel="apple-touch-icon" href="https://cdn.gutekueche.de/assets/img/icon/favicon-32x32.png">
|
||||
<link rel="apple-touch-icon" href="https://cdn.gutekueche.de/assets/img/icon/150x150.png" sizes="150x150">
|
||||
<link rel="apple-touch-icon" href="https://cdn.gutekueche.de/assets/img/icon/192x192.png" sizes="192x192">
|
||||
|
||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-KQZ9JZF');</script>
|
||||
|
||||
<link rel="dns-prefetch" href="//cdnjs.cloudflare.com"/>
|
||||
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="https://cdn.gutekueche.de/assets/css/app/main.css" />
|
||||
|
||||
|
||||
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:image" content="https://cdn.gutekueche.de/upload/rezept/4274/555x370_mamis-feiner-schokopudding.jpg" />
|
||||
<meta property="og:title" content="Mamis feiner Schokopudding - Rezept" /><meta property="og:description" content="Mamis feiner Schokopudding kommt bei Groß und Klein gut an. Das Rezept ergibt eine leckere Nachspeise." /><meta property="og:url" content="https://www.gutekueche.de/mamis-feiner-schokopudding-rezept-4274" /><link rel="canonical" href="https://www.gutekueche.de/mamis-feiner-schokopudding-rezept-4274" /><meta property="og:type" content="website" />
|
||||
|
||||
|
||||
<script type="application/ld+json">[{"@context":"http:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"\/","name":"Home"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/www.gutekueche.de\/rezepte","name":"Rezepte"}}]},{"@context":"http:\/\/schema.org","@type":"Recipe","name":"Mamis feiner Schokopudding","url":"https:\/\/www.gutekueche.de\/mamis-feiner-schokopudding-rezept-4274","image":["https:\/\/cdn.gutekueche.de\/upload\/rezept\/4274\/mamis-feiner-schokopudding.jpg","https:\/\/cdn.gutekueche.de\/upload\/rezept\/4274\/1600x1200_mamis-feiner-schokopudding.jpg","https:\/\/cdn.gutekueche.de\/upload\/rezept\/4274\/1600x900_mamis-feiner-schokopudding.jpg"],"aggregateRating":{"@type":"AggregateRating","ratingValue":3,"reviewCount":5,"worstRating":1,"bestRating":5},"author":{"@type":"Organization","name":"GuteKueche.de"},"publisher":{"@type":"Organization","name":"GuteKueche.de","logo":[{"@type":"ImageObject","url":"https:\/\/cdn.gutekueche.de\/assets\/img\/logos\/600x60_gkdelogo.png","width":"600","height":"60"},{"@type":"ImageObject","url":"https:\/\/cdn.gutekueche.de\/assets\/img\/logos\/600x600_gkdelogo.png","width":"600","height":"600"}]},"datePublished":"2018-11-20","mainEntityOfPage":"https:\/\/www.gutekueche.dehttps:\/\/www.gutekueche.de\/mamis-feiner-schokopudding-rezept-4274","description":"Mamis feiner Schokopudding kommt bei Groß und Klein gut an. Das Rezept ergibt eine leckere Nachspeise.","prepTime":"PT10M","cookTime":"PT50M","totalTime":"PT60M","recipeYield":"4 Portionen","recipeCategory":["Dessert","schnelle Rezepte","Kalte Speisen","Pudding"],"recipeIngredient":["2 EL Kakaopulver","500 ml Milch","100 ml Schlagsahne","35 g Speisestärke","50 g Zucker"],"recipeInstructions":[{"@type":"HowToStep","text":"Für Mamis feinen Schokopudding zuerst die Schokolade mit einem scharfen Messer grob hacken."},{"@type":"HowToStep","text":"350 ml Milch in einen Topf geben, erwärmen und die gehackte Schokolade hinzufügen. Unter Rühren die Schokolade zum Schmelzen bringen."},{"@type":"HowToStep","text":"Die restliche Milch mit der Stärke, dem Zucker und dem Kakao mit einem Schneebesen verrühren, bis keine Klümpchen mehr vorhanden sind."},{"@type":"HowToStep","text":"Die Schokoladenmilch unter ständigem Rühren aufkochen, die Kakao-Stärke-Milch einrühren, alles erneut aufkochen und etwa 1 Minute kochen lassen."},{"@type":"HowToStep","text":"Im Anschluss den heißen Pudding in 4 Schälchen füllen und zum Erkalten in den Kühlschrank stellen."}]}]</script>
|
||||
|
||||
<script>
|
||||
var docW = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
|
||||
bmm_prod = true;
|
||||
</script>
|
||||
|
||||
|
||||
<script id="trfAdSetup" async data-traffectiveConf='{"targeting":[{"key":"portal","value":"gutekueche.de"},{"key":"channel","value":"rezepte"},{"key":"pageContent","value":"rezept"},{"key":"contentId","value":4274},{"key":"recipeTypes","value":"Dessert,schnelle Rezepte,Kalte Speisen,Pudding"},{"key":"recipeIngredient","value":"Kakao,Milch,Schlagsahne,Speisest\u00e4rke,Zucker"},{"key":"canonical","value":"https:\/\/www.gutekueche.de\/mamis-feiner-schokopudding-rezept-4274"}],"dfpAdUrl":"\/21820015645\/gutekueche.de"}' src="//cdntrf.com/gutekueche.de.js"></script>
|
||||
|
||||
</head>
|
||||
<body class="cbp-spmenu-push ">
|
||||
|
||||
|
||||
<div id="container">
|
||||
<div id="ad_sky">
|
||||
<div id="traffective-ad-Skyscraper" class="Skyscraper traffective"></div>
|
||||
</div>
|
||||
|
||||
<header id="header">
|
||||
<div id="topheader">
|
||||
<div id="mobile_menu_btn" class="mobileMenuToggle"><i class="fa fa-bars"></i></div>
|
||||
|
||||
<a href="https://www.gutekueche.de/" id="logo"><img src="https://cdn.gutekueche.de/assets/img/logos/logo.png" alt="Logo"></a>
|
||||
|
||||
<div id="navi_con">
|
||||
<nav id="main-nav">
|
||||
<ul>
|
||||
<li class="nav-entry active-f">
|
||||
<a href="/rezepte">REZEPTE</a>
|
||||
</li>
|
||||
<li class="nav-entry">
|
||||
<a href="/kochwissen">KOCHWISSEN</a>
|
||||
</li>
|
||||
<li class="nav-entry">
|
||||
<a href="/magazin">MAGAZIN</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<div id="navi_overlay"></div>
|
||||
</div>
|
||||
|
||||
<div id="header-search">
|
||||
<form id="search" action="/suche" method="get">
|
||||
<button type="submit" name=""><i class="fa fa-search"></i> </button>
|
||||
<input type="search" name="s" placeholder="Suchen" autocomplete="off">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div id="login-mob">
|
||||
<a class="user-btn"><span class="text">USERMENÜ</span><i class="fa fa-user"></i></a>
|
||||
</div>
|
||||
|
||||
<div id="login">
|
||||
<a data-popup="/auth/modal/registrieren"><i class="fa fa-lock"></i> Registrieren</a>
|
||||
|
|
||||
<a data-popup="/auth/modal/login"><i class="fa fa-user"></i> Login</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="traffective-ad-Mobile_Pos1" class="Mobile_Pos1 traffective"></div>
|
||||
|
||||
<nav id="mobile-nav">
|
||||
<ul>
|
||||
<li class="nav-entry active-f">
|
||||
<a href="/rezepte">REZEPTE</a>
|
||||
|
||||
<ul class="subnav">
|
||||
<li >
|
||||
<a href="/rezepte">Rezeptsuche</a>
|
||||
</li>
|
||||
<li >
|
||||
<a href="/rezeptkategorien">Kategorien</a>
|
||||
</li>
|
||||
<li >
|
||||
<a href="/wochenrezepte">Wochenrezepte</a>
|
||||
</li>
|
||||
<li >
|
||||
<a href="/rezeptecharts">Rezeptecharts</a>
|
||||
</li>
|
||||
<li >
|
||||
<a href="/resteverwertung">Resteverwertung</a>
|
||||
</li>
|
||||
<li >
|
||||
<a href="/was-koche-ich-heute">Was koche ich heute</a>
|
||||
</li>
|
||||
<li >
|
||||
<a href="/rezept-des-tages">Rezept des Tages</a>
|
||||
</li>
|
||||
<li >
|
||||
<a href="/user/rezept/eintragen/rezept">Rezept Eintragen</a>
|
||||
</li>
|
||||
<li >
|
||||
<a href="/rezeptvideos">Rezepte mit Videos</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-entry">
|
||||
<a href="/kochwissen">KOCHWISSEN</a>
|
||||
|
||||
</li>
|
||||
<li class="nav-entry">
|
||||
<a href="/magazin">MAGAZIN</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<div id="middle">
|
||||
<div id="breadcrumb">
|
||||
<span>
|
||||
<a href="https://www.gutekueche.de/"><span itemprop="title">HOME</span></a>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<i class="fa fa-chevron-right"></i>
|
||||
<a href="https://www.gutekueche.de/rezepte"><span>REZEPTE</span></a>
|
||||
</span>
|
||||
<i class="fa fa-chevron-right"></i>
|
||||
MAMIS FEINER SCHOKOPUDDING
|
||||
</div>
|
||||
|
||||
<div id="traffective-ad-Billboard" class="Billboard traffective"></div>
|
||||
|
||||
<div class="grid">
|
||||
<main class="col col-2-3" id="main">
|
||||
|
||||
|
||||
<article data-article="RZT/4274" id="recipe">
|
||||
<h1>Mamis feiner Schokopudding</h1>
|
||||
|
||||
<p class="teaser-detail">Mamis feiner Schokopudding kommt bei Groß und Klein gut an. Das Rezept ergibt eine leckere Nachspeise.</p>
|
||||
|
||||
<header>
|
||||
<div class="bmm-diashow">
|
||||
<div class="slides">
|
||||
<div class="diashowSlide">
|
||||
<div class="img-cont">
|
||||
<img src="https://cdn.gutekueche.de/upload/rezept/4274/mamis-feiner-schokopudding.jpg" alt="Mamis feiner Schokopudding" class="img mbottom10" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="grid n-print">
|
||||
<div class="col col-2-5 rating-col">
|
||||
|
||||
|
||||
<div>
|
||||
<div class="rateit" data-rateitsize="30" data-rateit-value="3.0" data-rateit-ispreset="true" ></div><br>
|
||||
<small>Bewertung: Ø <span id="rateit_value">3,0</span> (<span id="rateit_count">5</span> Stimmen)</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col col-3-5 actions">
|
||||
<a class="btn btn-white tooltip print-it" title="Rezept drucken" data-gatrack='["Rezeptdetail","Druck"]'><i class="icon-print"></i> <span>Drucken</span></a> <a class="btn btn-white tooltip" id='trigger_add_bookmark' data-userpopup="/user/bookmark/modal/add/RZT?ids=4274" data-gatrack='["Rezeptdetail","Kochbuch"]' title="Rezept in meinem Kochbuch speichern"><i class="icon-save"></i> <span>Speichern</span></a>
|
||||
<a class="btn btn-white" id='trigger_add_foto' data-popup="/fotoladen/public/modal/index/RZT/4274" data-gatrack='["Rezeptdetail","Foto"]' title="Foto einsenden"><i class="icon-photo"></i> <span>Foto einsenden</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bluebox sec mbottom10">
|
||||
<div class="grid ">
|
||||
<div class="col col-1-3 text-center">
|
||||
<i class="icon-clock" style="opacity: 0.7;"></i> 60 Minuten
|
||||
</div>
|
||||
|
||||
<div class="col col-1-3 text-center">
|
||||
<i class="icon-hat"></i>
|
||||
<span><a href="https://www.gutekueche.de/dessert-rezepte">Dessert Rezepte</a></span>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col col-1-3 text-center">
|
||||
<i class="icon-discount"></i> <a id='trigger_kcal' data-popup="/rezepte/modal/kcal/RZT/4274" data-gatrack="['Rezeptdetail','Kalorien']">Nährwerte berechnen</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid ">
|
||||
|
||||
<div class="col col-2-3 recipe-ingredients">
|
||||
<h2><span class="firstWord">Zutaten</span> für <span class="portions">4</span> Portionen</h2>
|
||||
|
||||
<table cellspacing="0">
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="text-right" data-amount="100">
|
||||
100
|
||||
</td>
|
||||
<th>g</th>
|
||||
<th>
|
||||
Zartbitterschokolade (50% Kakaoanteil)
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="text-right" data-amount="500">
|
||||
500
|
||||
</td>
|
||||
<th>ml</th>
|
||||
<th>
|
||||
Milch
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="text-right" data-amount="35">
|
||||
35
|
||||
</td>
|
||||
<th>g</th>
|
||||
<th>
|
||||
Speisestärke
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="text-right" data-amount="2">
|
||||
2
|
||||
</td>
|
||||
<th>EL</th>
|
||||
<th>
|
||||
Kakaopulver
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="text-right" data-amount="50">
|
||||
50
|
||||
</td>
|
||||
<th>g</th>
|
||||
<th>
|
||||
Zucker
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="text-right" data-amount="100">
|
||||
100
|
||||
</td>
|
||||
<th>ml</th>
|
||||
<th>
|
||||
Schlagsahne
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="sec n-print">
|
||||
|
||||
|
||||
<form method="get" action="https://www.gutekueche.de/mamis-feiner-schokopudding-rezept-4274" target="_top">
|
||||
<input type="number" id="portions" name="portions" data-portions="4" value="4" min="1" > Portionen
|
||||
<div class="mtop10 visible-mobile"></div>
|
||||
<button type="submit" class="btn btn-primary" >Berechnen</button>
|
||||
<a class="btn btn-primary tooltip mleft10 add_einkaufsliste"
|
||||
data-einkaufsliste="4274"
|
||||
data-gatrack='["Rezeptdetail","Einkaufsliste"]'
|
||||
title="Zutaten zu einer Einkaufsliste hinzufügen">
|
||||
Einkaufsliste
|
||||
</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col col-1-3 recipe-rightbar">
|
||||
<div class="quicklinks n-print">
|
||||
<h2><span class="firstWord">Weitere</span> Kategorien</h2>
|
||||
<ul>
|
||||
<li><a href="https://www.gutekueche.de/schnelle-rezepte">schnelle Rezepte</a></li>
|
||||
<li><a href="https://www.gutekueche.de/kalte-rezepte">Kalte Speisen - Rezepte</a></li>
|
||||
<li><a href="https://www.gutekueche.de/pudding-rezepte">Pudding Rezepte</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div id="traffective-ad-Content_1" class="Content_1 traffective"></div>
|
||||
<div id="traffective-ad-Mobile_Pos2" class="Mobile_Pos2 traffective"></div>
|
||||
|
||||
<section class="sec rezept-preperation">
|
||||
<h2 class="mtp10"><span class="firstWord">Rezept</span> Zubereitung</h2>
|
||||
<ol>
|
||||
<li>Für <strong>Mamis feinen Schokopudding</strong> zuerst die Schokolade mit einem scharfen Messer grob hacken.</li>
|
||||
|
||||
<li>350 ml Milch in einen Topf geben, erwärmen und die gehackte Schokolade hinzufügen. Unter Rühren die Schokolade zum Schmelzen bringen.</li>
|
||||
|
||||
<li>Die restliche Milch mit der Stärke, dem Zucker und dem Kakao mit einem Schneebesen verrühren, bis keine Klümpchen mehr vorhanden sind.</li>
|
||||
|
||||
<li>Die Schokoladenmilch unter ständigem Rühren aufkochen, die Kakao-Stärke-Milch einrühren, alles erneut aufkochen und etwa 1 Minute kochen lassen.</li>
|
||||
|
||||
<li>Im Anschluss den heißen Pudding in 4 Schälchen füllen und zum Erkalten in den Kühlschrank stellen.</li>
|
||||
|
||||
</ol>
|
||||
</section>
|
||||
|
||||
<section class="sec rezept-anrichten">
|
||||
<h2><span class="firstWord">Tipps</span> zum Rezept</h2>
|
||||
|
||||
<p>Den Schokopudding mit einem Minze-Blatt sowie mit Schokolade garniert servieren.</p>
|
||||
</section>
|
||||
|
||||
</article>
|
||||
|
||||
<div class="sec">
|
||||
<div class="grid">
|
||||
<div class="social_likes col col-2-3">
|
||||
<a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://www.gutekueche.de/mamis-feiner-schokopudding-rezept-4274" class="fb-count" data-gatrack='["Socialcounter","Fb"]' >-</a>
|
||||
<a target="_blank" href="//de.pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.gutekueche.de%2Fmamis-feiner-schokopudding-rezept-4274&media=https%3A%2F%2Fcdn.gutekueche.de%2Fupload%2Frezept%2F4274%2F555x370_mamis-feiner-schokopudding.jpg&description=Mamis+feiner+Schokopudding+-+Rezept" class="pinterest-count" data-gatrack='["Socialcounter","Pinterest"]' >-</a> <a class="print-it tooltip" title="Drucken"><i class="fa fa-print"></i></a>
|
||||
<a class="save tooltip" title="Speichern" data-userpopup="/user/bookmark/modal/add/RZT?ids=4274"><i class="fa fa-floppy-o"></i></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="n-print">
|
||||
|
||||
|
||||
<section class="sec ">
|
||||
<h2>Ähnliche Rezepte</h2>
|
||||
|
||||
<div class="grid">
|
||||
|
||||
<div class="col teaser-bottom col-1-3 col-s-1-2 col-xs-2-2">
|
||||
<article class="linkarea">
|
||||
<span >
|
||||
|
||||
|
||||
|
||||
<img src="https://cdn.gutekueche.de/upload/rezept/1840/360x240_kalter-hund.jpg" alt="Kalter Hund" />
|
||||
|
||||
</span>
|
||||
<h3><a href="https://www.gutekueche.de/kalter-hund-rezept-1840">Kalter Hund</a></h3>
|
||||
<p>Ein köstliches Dessert, das nicht nur Kindern schmecken wird, ist der kalte Hund. Mit diesem Rezept punktet man immer.</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="col teaser-bottom col-1-3 col-s-1-2 col-xs-2-2">
|
||||
<article class="linkarea">
|
||||
<span >
|
||||
|
||||
|
||||
|
||||
<img src="https://cdn.gutekueche.de/upload/rezept/1940/360x240_bananenschnitte.jpg" alt="Bananenschnitte" />
|
||||
|
||||
</span>
|
||||
<h3><a href="https://www.gutekueche.de/bananenschnitte-rezept-1940">Bananenschnitte</a></h3>
|
||||
<p>Dieses Rezept für Bananenschnitte ist ein altes Familienrezept das immer gerne gebacken und natürlich gegessen wird.</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="col teaser-bottom col-1-3 col-s-1-2 col-xs-2-2">
|
||||
<article class="linkarea">
|
||||
<span >
|
||||
|
||||
|
||||
|
||||
<img src="https://cdn.gutekueche.de/upload/rezept/149/360x240_puddingcreme-schnitten.jpg" alt="Puddingcreme-Schnitten" />
|
||||
|
||||
</span>
|
||||
<h3><a href="https://www.gutekueche.de/puddingcreme-schnitten-rezept-149">Puddingcreme-Schnitten</a></h3>
|
||||
<p>Puddingcreme-Schnitten mit Blätterteig sind einfach in der Zubereitung und schmecken zudem noch herrlich cremig und süß! Hier das Rezept.</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="col teaser-bottom col-1-3 col-s-1-2 col-xs-2-2">
|
||||
<article class="linkarea">
|
||||
<span >
|
||||
|
||||
|
||||
|
||||
<img src="https://cdn.gutekueche.de/assets/img/default/360x240_default_rezept.png" alt="Schneemaß" />
|
||||
|
||||
</span>
|
||||
<h3><a href="https://www.gutekueche.de/schneemass-rezept-186">Schneemaß</a></h3>
|
||||
<p>Das Rezept der Schneemaß verdankt ihren Namen der Mischung aus Vanilleeis, Sekt und Orangenlimonade. Alles zusammen wird weiß, wie Schnee.</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="col teaser-bottom col-1-3 col-s-1-2 col-xs-2-2">
|
||||
<article class="linkarea">
|
||||
<span >
|
||||
|
||||
|
||||
|
||||
<img src="https://cdn.gutekueche.de/upload/rezept/2041/360x240_bienenstich.jpg" alt="Bienenstich" />
|
||||
|
||||
</span>
|
||||
<h3><a href="https://www.gutekueche.de/bienenstich-rezept-2041">Bienenstich</a></h3>
|
||||
<p>Mit diesem leckeren Rezept ist im Nu ein himmlisches Dessert gezaubert. Bienenstich ist sehr beliebt und gelingt garantiert.</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="col teaser-bottom col-1-3 col-s-1-2 col-xs-2-2">
|
||||
<article class="linkarea">
|
||||
<span >
|
||||
|
||||
|
||||
|
||||
<img src="https://cdn.gutekueche.de/upload/rezept/1841/360x240_himbeertraum.jpg" alt="Himbeertraum" />
|
||||
|
||||
</span>
|
||||
<h3><a href="https://www.gutekueche.de/himbeertraum-rezept-1841">Himbeertraum</a></h3>
|
||||
<p>Ein leichtes Dessert gelingt mit diesem Rezept. Der fruchtige Himbeertraum ist rasch zubereitet und schmeckt einfach köstlich.</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<section class="comments sec">
|
||||
<h2>User Kommentare</h2>
|
||||
|
||||
<div class="comment_new" id="comment_n">
|
||||
<form method="post" action="/user/kommentar/posten">
|
||||
<input type="hidden" name="content_cd" value="RZT">
|
||||
<input type="hidden" name="content_id" value="4274">
|
||||
<input type="hidden" name="parent_id" value="n">
|
||||
<textarea name="text" placeholder="Geben Sie hier Ihren Kommentar ein..." required="required" title="Ihr Kommentar (mindestens 20, maximal 700 Zeichen)"></textarea>
|
||||
<button class="btn btn-primary right" type="submit">Kommentar abgeben</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<div class="col col-1-3 col-m-2-2" id="rightbar">
|
||||
|
||||
|
||||
<section class="sec ">
|
||||
<div class="heading">Ähnliche Rezepte</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<article class="grid teaser-card-sm linkarea">
|
||||
<div class="col col-1-3 col-s-1-3 col-xs-2-2 ">
|
||||
<img src="https://cdn.gutekueche.de/upload/rezept/1754/360x240_joghurtbombe.jpg" alt="Joghurtbombe" />
|
||||
|
||||
</div>
|
||||
<div class="col col-2-3 col-s-2-3 col-xs-2-2">
|
||||
<h3><a href="https://www.gutekueche.de/joghurtbombe-rezept-1754">Joghurtbombe</a></h3>
|
||||
|
||||
|
||||
<div class="info">
|
||||
<div class="rateit"
|
||||
data-rateit-value="4.1"
|
||||
data-rateit-ispreset="true"
|
||||
data-rateit-readonly="true"
|
||||
title="Sehr gut!">
|
||||
</div>
|
||||
<span class="rating-c">311 Bewertungen</span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
|
||||
|
||||
<article class="grid teaser-card-sm linkarea">
|
||||
<div class="col col-1-3 col-s-1-3 col-xs-2-2 ">
|
||||
<img src="https://cdn.gutekueche.de/upload/rezept/2446/360x240_cremeschnitten.jpg" alt="Cremeschnitten" />
|
||||
|
||||
</div>
|
||||
<div class="col col-2-3 col-s-2-3 col-xs-2-2">
|
||||
<h3><a href="https://www.gutekueche.de/cremeschnitten-rezept-2446">Cremeschnitten</a></h3>
|
||||
|
||||
|
||||
<div class="info">
|
||||
<div class="rateit"
|
||||
data-rateit-value="4.2"
|
||||
data-rateit-ispreset="true"
|
||||
data-rateit-readonly="true"
|
||||
title="Sehr gut!">
|
||||
</div>
|
||||
<span class="rating-c">459 Bewertungen</span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
|
||||
|
||||
<article class="grid teaser-card-sm linkarea">
|
||||
<div class="col col-1-3 col-s-1-3 col-xs-2-2 ">
|
||||
<img src="https://cdn.gutekueche.de/upload/rezept/2172/360x240_bananenschnitte.jpg" alt="Bananenschnitte" />
|
||||
|
||||
</div>
|
||||
<div class="col col-2-3 col-s-2-3 col-xs-2-2">
|
||||
<h3><a href="https://www.gutekueche.de/bananenschnitte-rezept-2172">Bananenschnitte</a></h3>
|
||||
|
||||
|
||||
<div class="info">
|
||||
<div class="rateit"
|
||||
data-rateit-value="4.5"
|
||||
data-rateit-ispreset="true"
|
||||
data-rateit-readonly="true"
|
||||
title="Sehr gut!">
|
||||
</div>
|
||||
<span class="rating-c">385 Bewertungen</span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
|
||||
|
||||
<article class="grid teaser-card-sm linkarea">
|
||||
<div class="col col-1-3 col-s-1-3 col-xs-2-2 ">
|
||||
<img src="https://cdn.gutekueche.de/upload/rezept/1734/360x240_zitronenrolle.jpg" alt="Zitronenrolle" />
|
||||
|
||||
</div>
|
||||
<div class="col col-2-3 col-s-2-3 col-xs-2-2">
|
||||
<h3><a href="https://www.gutekueche.de/zitronenrolle-rezept-1734">Zitronenrolle</a></h3>
|
||||
|
||||
|
||||
<div class="info">
|
||||
<div class="rateit"
|
||||
data-rateit-value="4.2"
|
||||
data-rateit-ispreset="true"
|
||||
data-rateit-readonly="true"
|
||||
title="Sehr gut!">
|
||||
</div>
|
||||
<span class="rating-c">218 Bewertungen</span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
|
||||
|
||||
<article class="grid teaser-card-sm linkarea">
|
||||
<div class="col col-1-3 col-s-1-3 col-xs-2-2 ">
|
||||
<img src="https://cdn.gutekueche.de/upload/rezept/1325/360x240_quarkknoedel.jpg" alt="Quarkknödel" />
|
||||
|
||||
</div>
|
||||
<div class="col col-2-3 col-s-2-3 col-xs-2-2">
|
||||
<h3><a href="https://www.gutekueche.de/quarkknoedel-rezept-1325">Quarkknödel</a></h3>
|
||||
|
||||
|
||||
<div class="info">
|
||||
<div class="rateit"
|
||||
data-rateit-value="4.4"
|
||||
data-rateit-ispreset="true"
|
||||
data-rateit-readonly="true"
|
||||
title="Sehr gut!">
|
||||
</div>
|
||||
<span class="rating-c">514 Bewertungen</span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
|
||||
|
||||
<article class="grid teaser-card-sm linkarea">
|
||||
<div class="col col-1-3 col-s-1-3 col-xs-2-2 ">
|
||||
<img src="https://cdn.gutekueche.de/upload/rezept/938/360x240_griessbrei.jpg" alt="Grießbrei" />
|
||||
|
||||
</div>
|
||||
<div class="col col-2-3 col-s-2-3 col-xs-2-2">
|
||||
<h3><a href="https://www.gutekueche.de/griessbrei-rezept-938">Grießbrei</a></h3>
|
||||
|
||||
|
||||
<div class="info">
|
||||
<div class="rateit"
|
||||
data-rateit-value="4.4"
|
||||
data-rateit-ispreset="true"
|
||||
data-rateit-readonly="true"
|
||||
title="Sehr gut!">
|
||||
</div>
|
||||
<span class="rating-c">157 Bewertungen</span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<div id="traffective-ad-Rectangle_1" class="Rectangle_1 traffective"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="traffective-ad-Mobile_Footer_1" class="Mobile_Footer_1 traffective"></div>
|
||||
<div id="traffective-ad-Footer_1" class="Footer_1 traffective"></div>
|
||||
|
||||
<footer id="footer">
|
||||
<div class="grid">
|
||||
|
||||
<nav class="col col-1-5">
|
||||
<ul>
|
||||
<li><a href="https://www.gutekueche.de/impressum">Impressum</a></li>
|
||||
<li><a href="https://www.gutekueche.de/kontakt">Kontakt</a></li>
|
||||
<li><a href="https://www.gutekueche.de/agb">AGB</a></li>
|
||||
<li><a href="https://www.gutekueche.de/datenschutz">Datenschutz</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<nav class="col col-1-5">
|
||||
<ul>
|
||||
<li><a href="https://www.gutekueche.de/werbung">Werbung</a></li>
|
||||
<li><a href="https://www.gutekueche.de/newsletter">Newsletter</a></li>
|
||||
<li><a href="https://www.gutekueche.de/gewinnspiel">Gewinnspiel</a></li>
|
||||
<li><a href="https://www.gutekueche.de/sitemap">Sitemap</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<nav class="col col-1-5">
|
||||
<ul>
|
||||
<li><a href="https://www.gutekueche.de/restaurants">Restaurant</a></li>
|
||||
<li><a href="https://www.gutekueche.de/winzer">Winzer</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<div class="col col-2-5" id="bottom">
|
||||
<a href="https://www.gutekueche.de/" class="fo-logo">
|
||||
<img src="https://cdn.gutekueche.de/assets/img/logos/logo.png" alt="Logo" />
|
||||
</a>
|
||||
|
||||
<ul class="social">
|
||||
<li><a href="https://www.facebook.com/GuteKueche.de" target="_blank" rel="nofollow"><i class="fa fa-facebook"></i></a></li>
|
||||
<li><a href="https://www.youtube.com/GutekuecheDe" target="_blank" rel="nofollow"><i class="fa fa-youtube"></i></a></li>
|
||||
<li><a href="https://www.pinterest.de/gutekuechede/" target="_blank" rel="nofollow"><i class="fa fa-pinterest"></i></a></li>
|
||||
<li><a href="https://www.instagram.com/gutekueche.de/" target="_blank" rel="nofollow"><i class="fa fa-instagram"></i></a></li>
|
||||
<li><a href="https://www.gutekueche.de/rss"><i class="fa fa-rss"></i></a></li>
|
||||
</ul>
|
||||
|
||||
<p class="credits">
|
||||
© 2004-2020 Gutekueche-Team. All rights reserved..
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<img src="https://cdn.gutekueche.de/assets/img/logos/logo.png" id="printlogo" alt="Logo" />
|
||||
|
||||
<script>window.cookieconsent_options = {"message":"Diese Webseite verwendet Cookies und Website-Analyse-Tools, um eine optimale Online-Nutzung zu ermöglichen. Durch das Nutzen dieser Seite sind Sie mit der Verwendung von Cookies einverstanden - mehr erfahren Sie in unseren ","dismiss":"Ok","learnMore":"Datenschutzbestimmungen","link":"/datenschutz","theme":"dark-bottom"};</script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/1.0.9/cookieconsent.min.js"></script>
|
||||
|
||||
<script src="https://cdn.gutekueche.de/assets/js/jquery/jquery.min.js"></script>
|
||||
<script src="https://cdn.gutekueche.de/assets/js/tooltipster/js/jquery.tooltipster.min.js"></script>
|
||||
<script src="https://cdn.gutekueche.de/assets/js/magnific-popup/magnific-popup.js"></script>
|
||||
<script src="https://cdn.gutekueche.de/assets/js/jquery/jquery.unveil.min.js"></script>
|
||||
<script src="https://cdn.gutekueche.de/assets/js/rateit/jquery.rateit.min.js"></script>
|
||||
<script src="https://cdn.gutekueche.de/assets/js/jquery.nicenumbers/jquery.nice-number.js"></script>
|
||||
|
||||
<script src="https://cdn.gutekueche.de/assets/js/app/custom.autocomplete.js"></script>
|
||||
<script src="https://cdn.gutekueche.de/assets/js/app/app.js"></script>
|
||||
|
||||
<script>BMM.cdn = "https://cdn.gutekueche.de";</script>
|
||||
|
||||
|
||||
|
||||
<div class="modal fade" id="myModal" role="dialog" tabindex='-1'><div class="modal-dialog"><div class="modal-content"></div></div></div>
|
||||
|
||||
<div id="mobil-overlay" class="hidden"></div>
|
||||
</body>
|
||||
</html>
|
||||
<!-- HTML-Cache: 2020-06-21 05:19:36, Path : /mamis-feiner-schokopudding-rezept-4274, Valid till: 2020-06-23 05:19:36 -->
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,191 +1,5 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 9]><html class="lt-ie10" lang="de" > <![endif]-->
|
||||
<html lang="de" class="no-js de-AT de" dir="ltr">
|
||||
<head>
|
||||
<title>Schokopudding Rezept - Maizena</title>
|
||||
<link rel="canonical" href="https://www.maizena.at/rezepte/schokopudding/13534" />
|
||||
<meta property="og:url" content="https://www.maizena.at/rezepte/schokopudding/13534" />
|
||||
<meta charset="utf-8">
|
||||
<meta name="robots" content="index,follow" />
|
||||
<meta name="keywords" content="Maizena, Rezepte" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
<meta name="MobileOptimized" content="320">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta name="description" content="Rezept für Schokopudding. Jetzt nachkochen/ nachbacken oder von weiteren köstlichen Rezepten von und mit Maizena inspirieren lassen!">
|
||||
<meta property="og:description" content="Rezept für Schokopudding. Jetzt nachkochen/ nachbacken oder von weiteren köstlichen Rezepten von und mit Maizena inspirieren lassen!" />
|
||||
<meta property="og:type" content="food">
|
||||
<meta property="og:title" content="Schokopudding Rezept - Maizena">
|
||||
<meta property="og:image:secure_url" content="https://www.maizena.at/images/recipes/13534_594x445.jpg" />
|
||||
<meta property="og:image" content="http://www.maizena.at/images/recipes/13534_594x445.jpg" />
|
||||
<meta property="og:site_name" content="Maizena" />
|
||||
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<link rel="apple-touch-icon-precomposed" href="/Assets/img/apple-touch-icon-precomposed.png">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/Assets/css/main.css?v=v2.9.2">
|
||||
|
||||
<link rel="stylesheet" media="print" href="/Assets/css/print.css?v=v2.9.2">
|
||||
|
||||
|
||||
|
||||
<!-- CookieQ script -->
|
||||
<script type='text/javascript' src='//az417220.vo.msecnd.net/tgdach.js' data-culture='de' data-org='unilever_support'></script>
|
||||
|
||||
<!--<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>-->
|
||||
<script async src="/Assets/js/modernizr.bundle.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var UDM = {};
|
||||
UDM.globalbrand = 'Family Goodness';
|
||||
UDM.localbrand = 'Maizena';
|
||||
UDM.category = 'Foods';
|
||||
UDM.channel = 'Brand Site';
|
||||
UDM.country = 'Austria';
|
||||
UDM.sitetype = 'non-Avinash';
|
||||
UDM.evq = [];
|
||||
(function (d, u) {
|
||||
if (d.domain.indexOf('staging-server') != -1 || d.domain.indexOf('stage.deepblue') != -1 || d.domain.indexOf('localhost') != -1) {
|
||||
u = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'wa-uat.unileversolutions.com';
|
||||
UDM.gid = '8639ee5f35b298dbd1c086462d581d2a';
|
||||
UDM.gaa = 'UA-47072490-2,UA-35586169-2';
|
||||
UDM.dom = 'at.maizena2017.staging-server.com';
|
||||
}
|
||||
else {
|
||||
u = ('https:' == document.location.protocol ? 'https://secure-' : 'http://') + 'wa-na.unileversolutions.com';
|
||||
UDM.gid = '3b5b7de0859a0a7729ab70f47c0e0465';
|
||||
UDM.gaa = 'UA-47072490-1,UA-35586169-1';
|
||||
UDM.dom = '.maizena.at ';
|
||||
}
|
||||
var a = d.createElement('script'); a.type = 'text/javascript'; a.async = 'async';
|
||||
a.src = u + '/ct/' + UDM.gid + '/u.js';
|
||||
var s = d.getElementsByTagName('script')[0]; s.parentNode.insertBefore(a, s);
|
||||
})(document);
|
||||
</script>
|
||||
<script>
|
||||
var trackEvent = function (type, event, information) {
|
||||
if (/(localhost|stage.deepblue|staging-server.com)/.test(location.href)) {
|
||||
console.log(arguments);
|
||||
}
|
||||
UDM.evq.push(['trackEvent', type, event, information]);
|
||||
};
|
||||
/* make trackEvent accessible through window, used to track video player events */
|
||||
window.__trackEvent = trackEvent;
|
||||
/* tracking events */
|
||||
function addEvent(el, eventType, handler) {
|
||||
if (el.addEventListener) { // DOM Level 2 browsers
|
||||
el.addEventListener(eventType, handler, false);
|
||||
} else if (el.attachEvent) { // IE <= 8
|
||||
el.attachEvent('on' + eventType, handler);
|
||||
} else { // ancient browsers
|
||||
el['on' + eventType] = handler;
|
||||
}
|
||||
}
|
||||
addEvent(document, 'click', function(evt) {
|
||||
// check for trackable DOM elements in the event path
|
||||
var trackable = null;
|
||||
if (evt.target.className.split('tracking').length > 1) {
|
||||
trackable = evt.target;
|
||||
} else {
|
||||
var path;
|
||||
if (evt.path && evt.path.length) {
|
||||
path = evt.path;
|
||||
} else {
|
||||
path = eventPath(evt);
|
||||
}
|
||||
for (var i = 0; i < path.length; i ++) {
|
||||
if (path[i].className && path[i].className.split('tracking').length > 1) {
|
||||
trackable = path[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// process tracking if needed
|
||||
if (trackable !== null) {
|
||||
var classes = trackable.className.split(' ');
|
||||
if (classes.indexOf('tracking') !== -1 || classes.indexOf('tracking-alt') !== -1) {
|
||||
var alt = (classes.indexOf('tracking-alt') !== -1) ? '-alt' : '';
|
||||
trackEvent(trackable.getAttribute('data-type' + alt), trackable.getAttribute('data-event' + alt), trackable.getAttribute('data-option' + alt));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function eventPath(e) {
|
||||
var path = [];
|
||||
var node = e.target;
|
||||
while(node != document.body) {
|
||||
path.push(node);
|
||||
node = node.parentNode;
|
||||
}
|
||||
return path;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="section-recipes de-AT">
|
||||
|
||||
|
||||
|
||||
<!-- BEGIN M123_NAVIGATOR -->
|
||||
<div id="top" data-sticky-container class="m-navigator hide-for-print" data-component="navigator" data-navigator-desktop-threshold="150">
|
||||
<div data-sticky data-sticky-on="small" data-options="marginTop:0;">
|
||||
|
||||
<nav class="m-nav-meta">
|
||||
<div class="row collapse">
|
||||
<div class="small-12 columns text-right">
|
||||
<ul class="menu">
|
||||
<li class="nav-meta-item">
|
||||
<a href="/rezepte/merkzettel" class="nav-meta-link favorite-display" data-component="marked-recipes" data-marked-recipes-brackets="true">
|
||||
<i class="icon-heart"></i>
|
||||
<i class="icon-heart-outline"></i>
|
||||
<span>Merkzettel</span>
|
||||
<span class="count"></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<nav role="navigation">
|
||||
<div class="row collapse">
|
||||
|
||||
<div class="small-6 large-2 columns">
|
||||
<h2 class="navigator-branding"><a class="navigator-logo" href="/"><span class="navigator-brandname">Maizena</span></a></h2>
|
||||
</div>
|
||||
|
||||
<div class="small-6 columns text-right hide-for-large">
|
||||
<a data-toggler="navigator-burger-is-open" id="navigator-burger" class="navigator-burger" data-toggle="navigator-main navigator-burger"><span>Menu</span></a>
|
||||
</div>
|
||||
|
||||
<div class="small-12 large-9 end columns show-for-large" id="navigator-main" data-toggler="show-for-large">
|
||||
<ul class="m-nav-main vertical large-horizontal menu large-text-left" data-responsive-menu="dropdown" data-parent-link="true">
|
||||
<!-- BEGIN M106_LanguageSelector -->
|
||||
<!-- END M106_LanguageSelector -->
|
||||
|
||||
<li class=" nav-main-item active
 ">
|
||||
<a href="/rezepte" class="nav-main-link">Rezepte</a>
|
||||
</li>
|
||||
<li class=" nav-main-item
 ">
|
||||
<a href="/produkte" class="nav-main-link">Produkte</a>
|
||||
</li>
|
||||
<li class=" nav-main-item
 ">
|
||||
<a href="/de-at/tipps-und-tricks" class="nav-main-link">Tipps & Tricks</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- END M123_NAVIGATOR -->
|
||||
|
||||
|
||||
<!-- BEGIN M102_Breadcrumbs -->
|
||||
<div class="row show-for-large hide-for-print">
|
||||
@@ -405,221 +219,3 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Fett</th>
|
||||
<td>2,6 g</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">davon gesättigte Fettsäuren</th>
|
||||
<td>1,6 g</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Kohlenhydrate</th>
|
||||
<td>30 g</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">davon Zucker</th>
|
||||
<td>21 g</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Ballaststoffe</th>
|
||||
<td>1,2 g</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Eiweiß</th>
|
||||
<td>5,4 g</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Salz</th>
|
||||
<td>0,18 g</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="table-footer island-minimal">
|
||||
<small>*Salz ohne konkrete Mengenangabe ist bei der Berechnung nicht berücksichtigt.</small>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END M300_NutritionTable -->
|
||||
|
||||
</div>
|
||||
<hr class="spacing-minimal">
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<!-- END M308_RecipeDetails -->
|
||||
|
||||
|
||||
|
||||
</main>
|
||||
|
||||
<section>
|
||||
|
||||
<!-- BEGIN M121_YouTubeVideoList -->
|
||||
<!-- END M121_YouTubeVideoList -->
|
||||
|
||||
<!-- BEGIN M107_Slider -->
|
||||
<section class="m-related spacing-module hide-for-print" data-equalizer="slides">
|
||||
<div class="row" >
|
||||
<div class="small-12 columns">
|
||||
<header class="related-header">
|
||||
<h2 class="related-title">Das könnte Ihnen auch schmecken</h2>
|
||||
</header>
|
||||
<div class="m-gallery spacing-minimal" data-component="slick" data-component-settings='{"responsive": true, "slidesToShow": 4, "slidesToScroll": 4, "dots": true, "arrows": false}'>
|
||||
<div>
|
||||
<!-- BEGIN M107_z1_SliderItem -->
|
||||
<a class="linkwrap" href="/rezepte/marillen-charlotte/13546">
|
||||
<article class="m-teaser teaser-slide " data-equalizer-watch="slides">
|
||||
<!-- BEGIN M105_Images -->
|
||||
<picture data-component="lazypic" data-lazypic-bind-to=".slick-slider">
|
||||
<!--[if IE 9]><video style="display: none;"><![endif]-->
|
||||
<source media="(min-width: 60em)" srcset="" data-srcset="/Assets/img/DefaultRecipeImages/594x445.jpg" />
|
||||
<source media="(min-width: 30em)" srcset="" data-srcset="/Assets/img/DefaultRecipeImages/465x349.jpg" />
|
||||
<source media="(max-width: 30em)" srcset="" data-srcset="/Assets/img/DefaultRecipeImages/220x124.jpg" />
|
||||
<!--[if IE 9]></video><![endif]-->
|
||||
<img src="/Assets/img/DefaultRecipeImages/594x445.jpg" alt="Marillen Charlotte-Rezept">
|
||||
</picture>
|
||||
<!-- END M105_Images -->
|
||||
<h2 class="teaser-title">Marillen Charlotte</h2>
|
||||
</article>
|
||||
</a>
|
||||
<!-- END M107_z1_SliderItem -->
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<!-- BEGIN M107_z1_SliderItem -->
|
||||
<a class="linkwrap" href="/rezepte/vanillepudding/13535">
|
||||
<article class="m-teaser teaser-slide " data-equalizer-watch="slides">
|
||||
<!-- BEGIN M105_Images -->
|
||||
<picture data-component="lazypic" data-lazypic-bind-to=".slick-slider">
|
||||
<!--[if IE 9]><video style="display: none;"><![endif]-->
|
||||
<source media="(min-width: 60em)" srcset="" data-srcset="/images/Recipes/13535_594x445.jpg" />
|
||||
<source media="(min-width: 30em)" srcset="" data-srcset="/images/Recipes/13535_465x349.jpg" />
|
||||
<source media="(max-width: 30em)" srcset="" data-srcset="/images/Recipes/13535_220x124.jpg" />
|
||||
<!--[if IE 9]></video><![endif]-->
|
||||
<img src="/images/Recipes/13535_594x445.jpg" alt="Vanillepudding-Rezept">
|
||||
</picture>
|
||||
<!-- END M105_Images -->
|
||||
<h2 class="teaser-title">Vanillepudding</h2>
|
||||
</article>
|
||||
</a>
|
||||
<!-- END M107_z1_SliderItem -->
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<!-- BEGIN M107_z1_SliderItem -->
|
||||
<a class="linkwrap" href="/rezepte/himbeer-mango-trifle/13442">
|
||||
<article class="m-teaser teaser-slide " data-equalizer-watch="slides">
|
||||
<!-- BEGIN M105_Images -->
|
||||
<picture data-component="lazypic" data-lazypic-bind-to=".slick-slider">
|
||||
<!--[if IE 9]><video style="display: none;"><![endif]-->
|
||||
<source media="(min-width: 60em)" srcset="" data-srcset="/images/Recipes/13442_594x445.jpg" />
|
||||
<source media="(min-width: 30em)" srcset="" data-srcset="/images/Recipes/13442_465x349.jpg" />
|
||||
<source media="(max-width: 30em)" srcset="" data-srcset="/images/Recipes/13442_220x124.jpg" />
|
||||
<!--[if IE 9]></video><![endif]-->
|
||||
<img src="/images/Recipes/13442_594x445.jpg" alt="Himbeer-Mango-Trifle-Rezept">
|
||||
</picture>
|
||||
<!-- END M105_Images -->
|
||||
<h2 class="teaser-title">Himbeer-Mango-Trifle</h2>
|
||||
</article>
|
||||
</a>
|
||||
<!-- END M107_z1_SliderItem -->
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<!-- BEGIN M107_z1_SliderItem -->
|
||||
<a class="linkwrap" href="/rezepte/erdbeertopfenflammeri/13441">
|
||||
<article class="m-teaser teaser-slide " data-equalizer-watch="slides">
|
||||
<!-- BEGIN M105_Images -->
|
||||
<picture data-component="lazypic" data-lazypic-bind-to=".slick-slider">
|
||||
<!--[if IE 9]><video style="display: none;"><![endif]-->
|
||||
<source media="(min-width: 60em)" srcset="" data-srcset="/images/Recipes/13441_594x445.jpg" />
|
||||
<source media="(min-width: 30em)" srcset="" data-srcset="/images/Recipes/13441_465x349.jpg" />
|
||||
<source media="(max-width: 30em)" srcset="" data-srcset="/images/Recipes/13441_220x124.jpg" />
|
||||
<!--[if IE 9]></video><![endif]-->
|
||||
<img src="/images/Recipes/13441_594x445.jpg" alt="Erdbeer–Topfen–Flammeri-Rezept">
|
||||
</picture>
|
||||
<!-- END M105_Images -->
|
||||
<h2 class="teaser-title">Erdbeer–Topfen–Flammeri</h2>
|
||||
</article>
|
||||
</a>
|
||||
<!-- END M107_z1_SliderItem -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- END M107_Slider -->
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
<!-- BEGIN M124_FOOTER -->
|
||||
<footer class="m-footer spacing-module">
|
||||
<section class="footer-main hide-for-print">
|
||||
<!-- BEGIN M100_Backtop -->
|
||||
<div class="text-center">
|
||||
<a class="footer-backtop" href="#top" title="zum Seitenanfang" data-component="jumper" data-jumper-when-needed="true">
|
||||
<i class="icon-keyboard-arrow-up"></i>
|
||||
|
||||
</a>
|
||||
nach oben
|
||||
</div>
|
||||
<!-- END M100_Backtop -->
|
||||
|
||||
</section>
|
||||
<div class="row island-minimal-x2 hide-for-print">
|
||||
<div class="small-12 columns text-center">
|
||||
<!-- BEGIN M114_NAV_UTIL -->
|
||||
<ul class="m-nav-util no-bullet">
|
||||
<li class="nav-util-item">
|
||||
<a class="nav-util-link " href="/siteutilities/kontakt">
|
||||
<span class="nav-title">Kontakt</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-util-item">
|
||||
<a class="nav-util-link " href="/siteutilities/sitemap">
|
||||
<span class="nav-title">Sitemap</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-util-item">
|
||||
<a class="nav-util-link " target="_blank" href="https://www.unilevernotices.com/austria/austria/privacy-notice/notice.html">
|
||||
<span class="nav-title">Datenschutzhinweis</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-util-item">
|
||||
<a class="nav-util-link " target="_blank" href="http://secure.dach-unilever.com/nutzungsbedingungen-de-at.html">
|
||||
<span class="nav-title">Recht</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-util-item">
|
||||
<a class="nav-util-link cqPolicy" target="_blank" href="https://www.unilevernotices.com/germany/german/cookie-notice/notice.html">
|
||||
<span class="nav-title">Cookie Informationen</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-util-item">
|
||||
<a class="nav-util-link " href="/siteutilities/impressum">
|
||||
<span class="nav-title">Impressum</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- END M114_NAV_UTIL -->
|
||||
</div>
|
||||
</div>
|
||||
<p class="footer-attribution show-for-print">Maizena</p>
|
||||
</footer>
|
||||
|
||||
<div class="reveal" id="modal1" data-reveal data-v-offset="100" data-component="reveal" aria-labelledby="Dialog" aria-hidden="true" role="dialog"></div>
|
||||
<div class="reveal" id="modal2" data-reveal data-v-offset="100" data-component="reveal" aria-labelledby="Dialog" aria-hidden="true" role="dialog"></div>
|
||||
|
||||
|
||||
<!-- END M124_FOOTER -->
|
||||
|
||||
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
||||
<script async src="/Assets/js/app.bundle.js?v=v2.9.2"></script>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,13 +1,10 @@
|
||||
import io
|
||||
import json
|
||||
import re
|
||||
from json import JSONDecodeError
|
||||
|
||||
import microdata
|
||||
import requests
|
||||
from annoying.decorators import ajax_request
|
||||
from annoying.functions import get_object_or_None
|
||||
from bs4 import BeautifulSoup
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.models import User
|
||||
from django.db.models import Q
|
||||
@@ -18,11 +15,10 @@ from icalendar import Calendar, Event
|
||||
from rest_framework import viewsets, permissions
|
||||
from rest_framework.exceptions import APIException
|
||||
from rest_framework.mixins import RetrieveModelMixin, UpdateModelMixin, ListModelMixin
|
||||
from urllib3.exceptions import NewConnectionError
|
||||
|
||||
from cookbook.helper.permission_helper import group_required, CustomIsOwner, CustomIsAdmin, CustomIsUser
|
||||
from cookbook.helper.recipe_url_import import find_recipe_json
|
||||
from cookbook.models import Recipe, Sync, Storage, CookLog, MealPlan, MealType, ViewLog, UserPreference, RecipeBook, Keyword, RecipeIngredient, Ingredient
|
||||
from cookbook.helper.recipe_url_import import get_from_html
|
||||
from cookbook.models import Recipe, Sync, Storage, CookLog, MealPlan, MealType, ViewLog, UserPreference, RecipeBook, RecipeIngredient, Ingredient
|
||||
from cookbook.provider.dropbox import Dropbox
|
||||
from cookbook.provider.nextcloud import Nextcloud
|
||||
from cookbook.serializer import MealPlanSerializer, MealTypeSerializer, RecipeSerializer, ViewLogSerializer, UserNameSerializer, UserPreferenceSerializer, RecipeBookSerializer, RecipeIngredientSerializer, IngredientSerializer
|
||||
@@ -265,7 +261,6 @@ def get_plan_ical(request, html_week):
|
||||
@group_required('user')
|
||||
def recipe_from_url(request, url):
|
||||
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36'}
|
||||
|
||||
try:
|
||||
response = requests.get(url, headers=headers)
|
||||
except requests.exceptions.ConnectionError:
|
||||
@@ -273,33 +268,4 @@ def recipe_from_url(request, url):
|
||||
|
||||
if response.status_code == 403:
|
||||
return JsonResponse({'error': True, 'msg': _('The requested page refused to provide any information (Status Code 403).')}, status=400)
|
||||
|
||||
soup = BeautifulSoup(response.text, "html.parser")
|
||||
|
||||
# first try finding ld+json as its most common
|
||||
for ld in soup.find_all('script', type='application/ld+json'):
|
||||
try:
|
||||
ld_json = json.loads(ld.string)
|
||||
if type(ld_json) != list:
|
||||
ld_json = [ld_json]
|
||||
|
||||
for ld_json_item in ld_json:
|
||||
# recipes type might be wrapped in @graph type
|
||||
if '@graph' in ld_json_item:
|
||||
for x in ld_json_item['@graph']:
|
||||
if '@type' in x and x['@type'] == 'Recipe':
|
||||
ld_json_item = x
|
||||
|
||||
if '@type' in ld_json_item and ld_json_item['@type'] == 'Recipe':
|
||||
return find_recipe_json(ld_json_item, url)
|
||||
except JSONDecodeError:
|
||||
JsonResponse({'error': True, 'msg': _('The requested site does not provided malformed data and cannot be read.')}, status=400)
|
||||
|
||||
# now try to find microdata
|
||||
items = microdata.get_items(response.text)
|
||||
for i in items:
|
||||
md_json = json.loads(i.json())
|
||||
if 'schema.org/Recipe' in str(md_json['type']):
|
||||
return find_recipe_json(md_json['properties'], url)
|
||||
|
||||
return JsonResponse({'error': True, 'msg': _('The requested site does not provide any recognized data format to import the recipe from.')}, status=400)
|
||||
return get_from_html(response.text, url)
|
||||
|
||||
Reference in New Issue
Block a user