From b1189aa411eb3c37cb112bbc380c3da7cdcca963 Mon Sep 17 00:00:00 2001 From: James Addison Date: Fri, 4 Oct 2024 15:25:45 +0100 Subject: [PATCH 01/19] Bump version to 15.2.1: (version-only update; 15.2.0 had a git tag/release process mistake, caused when a local tag corresponding to the prepared release was pushed before pending changes from upstream had been pulled. in that case the missing changes were test-only, but it still caused a git commit mismatch) --- recipe_scrapers/__version__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe_scrapers/__version__.py b/recipe_scrapers/__version__.py index 30c70d39f..f59bc580d 100644 --- a/recipe_scrapers/__version__.py +++ b/recipe_scrapers/__version__.py @@ -1 +1 @@ -__version__ = "15.2.0" +__version__ = "15.2.1" From 52cbc4a58bc15b4d7d0d1027d96abf34dfac279d Mon Sep 17 00:00:00 2001 From: James Addison <55152140+jayaddison@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:39:15 +0000 Subject: [PATCH 02/19] Maintenance: declare Python3.13 support (#1292) --- .github/workflows/unittests.yaml | 2 +- pyproject.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/unittests.yaml b/.github/workflows/unittests.yaml index 55fa8e0c4..cfda32f85 100644 --- a/.github/workflows/unittests.yaml +++ b/.github/workflows/unittests.yaml @@ -16,7 +16,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-13, windows-latest] - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13.0-rc.3"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] include: # set toxenv to workaround-darwin on macos (check tox.ini) - toxenv: py diff --git a/pyproject.toml b/pyproject.toml index dbb9b07c5..0457523a5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,6 +18,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "License :: OSI Approved :: MIT License", "Intended Audience :: Developers", "Operating System :: OS Independent", From 803aee11af5f00ce49d35deab48b9620aad6f05b Mon Sep 17 00:00:00 2001 From: James Addison <55152140+jayaddison@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:19:21 +0000 Subject: [PATCH 03/19] timesofindia: search for ingredients only within ingredient-data container (#1291) --- recipe_scrapers/timesofindia.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipe_scrapers/timesofindia.py b/recipe_scrapers/timesofindia.py index c6df516e9..bda6d9c52 100644 --- a/recipe_scrapers/timesofindia.py +++ b/recipe_scrapers/timesofindia.py @@ -1,5 +1,5 @@ from ._abstract import AbstractScraper -from ._exceptions import StaticValueException +from ._exceptions import ElementNotFoundInHtml, StaticValueException from ._utils import normalize_string @@ -12,8 +12,11 @@ def site_name(self): raise StaticValueException(return_value="Times of India - Recipes") def ingredients(self): - ingredients = self.soup.find_all("label", attrs={"class": "clearfix"}) + container = self.soup.find("div", id="ingredata") + if not container: + raise ElementNotFoundInHtml("Could not find ingredient data container") + ingredients = container.find_all("label", attrs={"class": "clearfix"}) return [normalize_string(ingredient.get_text()) for ingredient in ingredients] def language(self): From ca3081cc8c1fbb880e96b0a93b6f5778b069326e Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Tue, 15 Oct 2024 14:45:50 -0700 Subject: [PATCH 04/19] 10 new sites (#1258) * abeautifulmess * barefootinthepines & betterfoodguru * beyondfrosting * Update beyondfrosting.py * bitsofcarey & brokenovenbaking * cakemehometonight * cambreabakes * colleenchristensennutrition * cookiesandcups * Update cookiesandcups.py * update abeautifulmess * improvments * Update recipe_scrapers/abeautifulmess.py Co-authored-by: James Addison <55152140+jayaddison@users.noreply.github.com> * Update recipe_scrapers/barefootinthepines.py Co-authored-by: James Addison <55152140+jayaddison@users.noreply.github.com> * fix brokenoven equipment * bitsofcarey note improvements * cookiesandcups author * improve nutrients output * Update barefootinthepines.py --------- Co-authored-by: James Addison <55152140+jayaddison@users.noreply.github.com> --- README.rst | 10 + recipe_scrapers/__init__.py | 20 + recipe_scrapers/abeautifulmess.py | 28 + recipe_scrapers/barefootinthepines.py | 57 + recipe_scrapers/betterfoodguru.py | 16 + recipe_scrapers/beyondfrosting.py | 28 + recipe_scrapers/bitsofcarey.py | 38 + recipe_scrapers/brokenovenbaking.py | 28 + recipe_scrapers/cakemehometonight.py | 25 + recipe_scrapers/cambreabakes.py | 25 + .../colleenchristensennutrition.py | 16 + recipe_scrapers/cookiesandcups.py | 29 + .../abeautifulmess.com/abeautifulmess_1.json | 48 + .../abeautifulmess_1.testhtml | 1529 +++++++ .../abeautifulmess.com/abeautifulmess_2.json | 94 + .../abeautifulmess_2.testhtml | 1710 ++++++++ .../barefootinthepines_1.json | 52 + .../barefootinthepines_1.testhtml | 1247 ++++++ .../barefootinthepines_2.json | 96 + .../barefootinthepines_2.testhtml | 1092 +++++ .../betterfoodguru.com/betterfoodguru_1.json | 63 + .../betterfoodguru_1.testhtml | 1881 ++++++++ .../betterfoodguru.com/betterfoodguru_2.json | 85 + .../betterfoodguru_2.testhtml | 1210 +++++ .../beyondfrosting.com/beyondfrosting_1.json | 57 + .../beyondfrosting_1.testhtml | 2218 ++++++++++ .../beyondfrosting.com/beyondfrosting_2.json | 96 + .../beyondfrosting_2.testhtml | 1983 +++++++++ .../bitsofcarey.com/bitsofcarey_1.json | 64 + .../bitsofcarey.com/bitsofcarey_1.testhtml | 1303 ++++++ .../bitsofcarey.com/bitsofcarey_2.json | 89 + .../bitsofcarey.com/bitsofcarey_2.testhtml | 1299 ++++++ .../bitsofcarey.com/bitsofcarey_3.json | 112 + .../bitsofcarey.com/bitsofcarey_3.testhtml | 3901 +++++++++++++++++ .../brokenovenbaking_1.json | 67 + .../brokenovenbaking_1.testhtml | 3704 ++++++++++++++++ .../brokenovenbaking_2.json | 92 + .../brokenovenbaking_2.testhtml | 3716 ++++++++++++++++ .../cakemehometonight_1.json | 48 + .../cakemehometonight_1.testhtml | 1896 ++++++++ .../cakemehometonight_2.json | 119 + .../cakemehometonight_2.testhtml | 1742 ++++++++ .../cambreabakes.com/cambreabakes_1.json | 69 + .../cambreabakes.com/cambreabakes_1.testhtml | 1544 +++++++ .../cambreabakes.com/cambreabakes_2.json | 128 + .../cambreabakes.com/cambreabakes_2.testhtml | 1574 +++++++ .../colleenchristensennutrition_1.json | 57 + .../colleenchristensennutrition_1.testhtml | 1547 +++++++ .../colleenchristensennutrition_2.json | 121 + .../colleenchristensennutrition_2.testhtml | 1602 +++++++ .../cookiesandcups.com/cookiesandcups_1.json | 56 + .../cookiesandcups_1.testhtml | 3766 ++++++++++++++++ .../cookiesandcups.com/cookiesandcups_2.json | 80 + .../cookiesandcups_2.testhtml | 1997 +++++++++ 54 files changed, 44474 insertions(+) create mode 100644 recipe_scrapers/abeautifulmess.py create mode 100644 recipe_scrapers/barefootinthepines.py create mode 100644 recipe_scrapers/betterfoodguru.py create mode 100644 recipe_scrapers/beyondfrosting.py create mode 100644 recipe_scrapers/bitsofcarey.py create mode 100644 recipe_scrapers/brokenovenbaking.py create mode 100644 recipe_scrapers/cakemehometonight.py create mode 100644 recipe_scrapers/cambreabakes.py create mode 100644 recipe_scrapers/colleenchristensennutrition.py create mode 100644 recipe_scrapers/cookiesandcups.py create mode 100644 tests/test_data/abeautifulmess.com/abeautifulmess_1.json create mode 100644 tests/test_data/abeautifulmess.com/abeautifulmess_1.testhtml create mode 100644 tests/test_data/abeautifulmess.com/abeautifulmess_2.json create mode 100644 tests/test_data/abeautifulmess.com/abeautifulmess_2.testhtml create mode 100644 tests/test_data/barefootinthepines.com/barefootinthepines_1.json create mode 100644 tests/test_data/barefootinthepines.com/barefootinthepines_1.testhtml create mode 100644 tests/test_data/barefootinthepines.com/barefootinthepines_2.json create mode 100644 tests/test_data/barefootinthepines.com/barefootinthepines_2.testhtml create mode 100644 tests/test_data/betterfoodguru.com/betterfoodguru_1.json create mode 100644 tests/test_data/betterfoodguru.com/betterfoodguru_1.testhtml create mode 100644 tests/test_data/betterfoodguru.com/betterfoodguru_2.json create mode 100644 tests/test_data/betterfoodguru.com/betterfoodguru_2.testhtml create mode 100644 tests/test_data/beyondfrosting.com/beyondfrosting_1.json create mode 100644 tests/test_data/beyondfrosting.com/beyondfrosting_1.testhtml create mode 100644 tests/test_data/beyondfrosting.com/beyondfrosting_2.json create mode 100644 tests/test_data/beyondfrosting.com/beyondfrosting_2.testhtml create mode 100644 tests/test_data/bitsofcarey.com/bitsofcarey_1.json create mode 100644 tests/test_data/bitsofcarey.com/bitsofcarey_1.testhtml create mode 100644 tests/test_data/bitsofcarey.com/bitsofcarey_2.json create mode 100644 tests/test_data/bitsofcarey.com/bitsofcarey_2.testhtml create mode 100644 tests/test_data/bitsofcarey.com/bitsofcarey_3.json create mode 100644 tests/test_data/bitsofcarey.com/bitsofcarey_3.testhtml create mode 100644 tests/test_data/brokenovenbaking.com/brokenovenbaking_1.json create mode 100644 tests/test_data/brokenovenbaking.com/brokenovenbaking_1.testhtml create mode 100644 tests/test_data/brokenovenbaking.com/brokenovenbaking_2.json create mode 100644 tests/test_data/brokenovenbaking.com/brokenovenbaking_2.testhtml create mode 100644 tests/test_data/cakemehometonight.com/cakemehometonight_1.json create mode 100644 tests/test_data/cakemehometonight.com/cakemehometonight_1.testhtml create mode 100644 tests/test_data/cakemehometonight.com/cakemehometonight_2.json create mode 100644 tests/test_data/cakemehometonight.com/cakemehometonight_2.testhtml create mode 100644 tests/test_data/cambreabakes.com/cambreabakes_1.json create mode 100644 tests/test_data/cambreabakes.com/cambreabakes_1.testhtml create mode 100644 tests/test_data/cambreabakes.com/cambreabakes_2.json create mode 100644 tests/test_data/cambreabakes.com/cambreabakes_2.testhtml create mode 100644 tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_1.json create mode 100644 tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_1.testhtml create mode 100644 tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_2.json create mode 100644 tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_2.testhtml create mode 100644 tests/test_data/cookiesandcups.com/cookiesandcups_1.json create mode 100644 tests/test_data/cookiesandcups.com/cookiesandcups_1.testhtml create mode 100644 tests/test_data/cookiesandcups.com/cookiesandcups_2.json create mode 100644 tests/test_data/cookiesandcups.com/cookiesandcups_2.testhtml diff --git a/README.rst b/README.rst index a6cd18e48..3a63252a2 100644 --- a/README.rst +++ b/README.rst @@ -79,6 +79,7 @@ Scrapers available for: - `https://101cookbooks.com/ `_ - `https://15gram.be `_ - `https://www.750g.com `_ +- `https://abeautifulmess.com/ `_ - `https://aberlehome.com/ `_ - `https://abuelascounter.com/ `_ - `https://www.acouplecooks.com `_ @@ -108,14 +109,18 @@ Scrapers available for: - `https://bakingmischief.com/ `_ - `https://barefeetinthekitchen.com/ `_ - `https://barefootcontessa.com/ `_ +- `https://barefootinthepines.com/ `_ - `https://bbc.com/ `_ - `.co.uk `__ - `https://bbcgoodfood.com/ `_ - `https://bestrecipes.com.au/ `_ +- `https://betterfoodguru.com/ `_ - `https://bettybossi.ch/ `_ - `https://bettycrocker.com/ `_ +- `https://beyondfrosting.com/ `_ - `https://biancazapatka.com/ `_ - `https://bigoven.com/ `_ +- `https://bitsofcarey.com/ `_ - `https://blueapron.com/ `_ - `https://bluejeanchef.com/ `_ - `https://www.bodybuilding.com/ `_ @@ -125,8 +130,11 @@ Scrapers available for: - `https://bowlofdelicious.com/ `_ - `https://breadtopia.com/ `_ - `https://briceletbaklava.ch/ `_ +- `https://brokenovenbaking.com/ `_ - `https://budgetbytes.com/ `_ - `https://cafedelites.com/ `_ +- `https://cakemehometonight.com/ `_ +- `https://cambreabakes.com/ `_ - `https://carlsbadcravings.com/ `_ - `https://castironketo.net/ `_ - `https://cdkitchen.com/ `_ @@ -136,10 +144,12 @@ Scrapers available for: - `https://chefsavvy.com/ `_ - `https://claudia.abril.com.br/ `_ - `https://closetcooking.com/ `_ +- `https://colleenchristensennutrition.com/ `_ - `https://comidinhasdochef.com/ `_ - `https://cook-talk.com/ `_ - `https://cookeatshare.com/ `_ - `https://cookieandkate.com/ `_ +- `https://cookiesandcups.com/ `_ - `https://cooking.nytimes.com/ `_ - `https://cookingcircle.com/ `_ - `https://cookinglight.com/ `_ diff --git a/recipe_scrapers/__init__.py b/recipe_scrapers/__init__.py index 06f1e5e72..cef1cba3d 100644 --- a/recipe_scrapers/__init__.py +++ b/recipe_scrapers/__init__.py @@ -33,6 +33,7 @@ ) from ._factory import SchemaScraperFactory from ._utils import get_host_name +from .abeautifulmess import ABeautifulMess from .aberlehome import AberleHome from .abril import Abril from .abuelascounter import AbuelasCounter @@ -62,13 +63,17 @@ from .bakingsense import BakingSense from .barefeetinthekitchen import BarefeetInTheKitchen from .barefootcontessa import BareFootContessa +from .barefootinthepines import BarefootInThePines from .bbcfood import BBCFood from .bbcgoodfood import BBCGoodFood from .bestrecipes import BestRecipes +from .betterfoodguru import BetterFoodGuru from .bettybossi import BettyBossi from .bettycrocker import BettyCrocker +from .beyondfrosting import BeyondFrosting from .biancazapatka import BiancaZapatka from .bigoven import BigOven +from .bitsofcarey import BitsOfCarey from .blueapron import BlueApron from .bluejeanchef import BlueJeanChef from .bodybuilding import Bodybuilding @@ -77,8 +82,11 @@ from .bowlofdelicious import BowlOfDelicious from .breadtopia import Breadtopia from .briceletbaklava import BricelEtBaklava +from .brokenovenbaking import BrokenOvenBaking from .budgetbytes import BudgetBytes from .cafedelites import CafeDelites +from .cakemehometonight import CakeMeHomeTonight +from .cambreabakes import CambreaBakes from .carlsbadcravings import CarlsBadCravings from .castironketo import CastIronKeto from .cdkitchen import CdKitchen @@ -87,9 +95,11 @@ from .chefnini import Chefnini from .chefsavvy import ChefSavvy from .closetcooking import ClosetCooking +from .colleenchristensennutrition import ColleenChristensenNutrition from .comidinhasdochef import ComidinhasDoChef from .cookeatshare import CookEatShare from .cookieandkate import CookieAndKate +from .cookiesandcups import CookiesAndCups from .cookingcircle import CookingCircle from .cookinglight import CookingLight from .cookpad import CookPad @@ -396,6 +406,7 @@ from .zenbelly import ZenBelly SCRAPERS = { + ABeautifulMess.host(): ABeautifulMess, ACoupleCooks.host(): ACoupleCooks, AFlavorJournal.host(): AFlavorJournal, ALittleBitYummy.host(): ALittleBitYummy, @@ -429,11 +440,15 @@ BakingMischief.host(): BakingMischief, BareFootContessa.host(): BareFootContessa, BarefeetInTheKitchen.host(): BarefeetInTheKitchen, + BarefootInThePines.host(): BarefootInThePines, BestRecipes.host(): BestRecipes, + BetterFoodGuru.host(): BetterFoodGuru, BettyBossi.host(): BettyBossi, BettyCrocker.host(): BettyCrocker, + BeyondFrosting.host(): BeyondFrosting, BiancaZapatka.host(): BiancaZapatka, BigOven.host(): BigOven, + BitsOfCarey.host(): BitsOfCarey, BlueApron.host(): BlueApron, BlueJeanChef.host(): BlueJeanChef, Bodybuilding.host(): Bodybuilding, @@ -442,8 +457,11 @@ BongEats.host(): BongEats, Breadtopia.host(): Breadtopia, BricelEtBaklava.host(): BricelEtBaklava, + BrokenOvenBaking.host(): BrokenOvenBaking, BudgetBytes.host(): BudgetBytes, CafeDelites.host(): CafeDelites, + CakeMeHomeTonight.host(): CakeMeHomeTonight, + CambreaBakes.host(): CambreaBakes, CarlsBadCravings.host(): CarlsBadCravings, CastIronKeto.host(): CastIronKeto, CdKitchen.host(): CdKitchen, @@ -452,11 +470,13 @@ Chefkoch.host(): Chefkoch, Chefnini.host(): Chefnini, ClosetCooking.host(): ClosetCooking, + ColleenChristensenNutrition.host(): ColleenChristensenNutrition, ComidinhasDoChef.host(): ComidinhasDoChef, CookEatShare.host(): CookEatShare, CookPad.host(): CookPad, CookTalk.host(): CookTalk, CookieAndKate.host(): CookieAndKate, + CookiesAndCups.host(): CookiesAndCups, CookingCircle.host(): CookingCircle, CookingLight.host(): CookingLight, CooksCountry.host(): CooksCountry, diff --git a/recipe_scrapers/abeautifulmess.py b/recipe_scrapers/abeautifulmess.py new file mode 100644 index 000000000..a3c93a329 --- /dev/null +++ b/recipe_scrapers/abeautifulmess.py @@ -0,0 +1,28 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients +from ._utils import get_equipment + + +class ABeautifulMess(AbstractScraper): + @classmethod + def host(cls): + return "abeautifulmess.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".wprm-recipe-ingredient-group h4", + ".wprm-recipe-ingredient", + ) + + def equipment(self): + equipment_container = self.soup.select_one(".wprm-recipe-equipment-container") + if not equipment_container: + return None + + equipment_items = [ + item.get_text() + for item in equipment_container.select(".wprm-recipe-equipment-name") + ] + return get_equipment(equipment_items) diff --git a/recipe_scrapers/barefootinthepines.py b/recipe_scrapers/barefootinthepines.py new file mode 100644 index 000000000..248f1c029 --- /dev/null +++ b/recipe_scrapers/barefootinthepines.py @@ -0,0 +1,57 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients + + +class BarefootInThePines(AbstractScraper): + @classmethod + def host(cls): + return "barefootinthepines.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".mv-create-ingredients h4", + ".mv-create-ingredients ul li", + ) + + def nutrients(self): + nutrition_section = self.soup.select_one(".mv-create-nutrition-box") + if not nutrition_section: + return None + + raw_nutrition_data = { + item.select_one(".mv-create-nutrition-label") + .get_text(strip=True) + .lower() + .rstrip(":"): item.get_text(strip=True) + .replace( + item.select_one(".mv-create-nutrition-label").get_text(strip=True), "" + ) + .strip() + for item in nutrition_section.select(".mv-create-nutrition-item") + if item.select_one(".mv-create-nutrition-label") + } + + nutrition_label_mapping = { + "calories": "calories", + "carbohydrates": "carbohydrateContent", + "cholesterol": "cholesterolContent", + "total fat": "fatContent", + "fiber": "fiberContent", + "protein": "proteinContent", + "saturated fat": "saturatedFatContent", + "serving size": "servingSize", + "sodium": "sodiumContent", + "sugar": "sugarContent", + "trans fat": "transFatContent", + "unsaturated fat": "unsaturatedFatContent", + } + + standardized_nutrition_data = { + nutrition_label_mapping[custom_label]: value + for custom_label, value in raw_nutrition_data.items() + if custom_label in nutrition_label_mapping + } + + return standardized_nutrition_data diff --git a/recipe_scrapers/betterfoodguru.py b/recipe_scrapers/betterfoodguru.py new file mode 100644 index 000000000..b5bf8b44f --- /dev/null +++ b/recipe_scrapers/betterfoodguru.py @@ -0,0 +1,16 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients + + +class BetterFoodGuru(AbstractScraper): + @classmethod + def host(cls): + return "betterfoodguru.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".wprm-recipe-ingredient-group h4", + ".wprm-recipe-ingredient", + ) diff --git a/recipe_scrapers/beyondfrosting.py b/recipe_scrapers/beyondfrosting.py new file mode 100644 index 000000000..277400c68 --- /dev/null +++ b/recipe_scrapers/beyondfrosting.py @@ -0,0 +1,28 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients +from ._utils import get_equipment + + +class BeyondFrosting(AbstractScraper): + @classmethod + def host(cls): + return "beyondfrosting.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".tasty-recipes-ingredients-body p strong", + ".tasty-recipes-ingredients-body ul li", + ) + + def equipment(self): + equipment_items = self.soup.select( + ".tasty-recipes-equipment .tasty-link-card a.tasty-link" + ) + equipment_list = [ + item.find_next("p").get_text(strip=True) + for item in equipment_items + if "affiliate link" not in item.find_next("p").get_text(strip=True).lower() + ] + return get_equipment(equipment_list) diff --git a/recipe_scrapers/bitsofcarey.py b/recipe_scrapers/bitsofcarey.py new file mode 100644 index 000000000..5a8b27b1a --- /dev/null +++ b/recipe_scrapers/bitsofcarey.py @@ -0,0 +1,38 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients +from ._utils import get_equipment + + +class BitsOfCarey(AbstractScraper): + @classmethod + def host(cls): + return "bitsofcarey.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".wprm-recipe-ingredient-group h4", + ".wprm-recipe-ingredient", + ) + + def equipment(self): + equipment_items = self.soup.select( + ".wprm-recipe-equipment-container .wprm-recipe-equipment-item" + ) + equipment_list = [] + + for item in equipment_items: + name_element = item.select_one(".wprm-recipe-equipment-name") + note = item.select_one(".wprm-recipe-equipment-notes") + + name = name_element.get_text(strip=True) + + if note: + note_text = note.get_text(strip=True) + name = name.replace(note_text, "").strip() + name += f" (note: {note_text})" + + equipment_list.append(name) + + return get_equipment(equipment_list) diff --git a/recipe_scrapers/brokenovenbaking.py b/recipe_scrapers/brokenovenbaking.py new file mode 100644 index 000000000..f6fd3ac48 --- /dev/null +++ b/recipe_scrapers/brokenovenbaking.py @@ -0,0 +1,28 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients +from ._utils import get_equipment + + +class BrokenOvenBaking(AbstractScraper): + @classmethod + def host(cls): + return "brokenovenbaking.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".wprm-recipe-ingredient-group h4", + ".wprm-recipe-ingredient", + ) + + def equipment(self): + equipment_items = self.soup.select( + ".wprm-recipe-equipment-container .wprm-recipe-equipment-item" + ) + equipment_list = [ + item.select_one(".wprm-recipe-equipment-name").get_text() + for item in equipment_items + ] + + return get_equipment(equipment_list) diff --git a/recipe_scrapers/cakemehometonight.py b/recipe_scrapers/cakemehometonight.py new file mode 100644 index 000000000..c6ece49d3 --- /dev/null +++ b/recipe_scrapers/cakemehometonight.py @@ -0,0 +1,25 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients +from ._utils import get_equipment + + +class CakeMeHomeTonight(AbstractScraper): + @classmethod + def host(cls): + return "cakemehometonight.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".wprm-recipe-ingredient-group h4", + ".wprm-recipe-ingredient", + ) + + def equipment(self): + equipment_items = self.soup.select( + ".wprm-recipe-equipment-container .wprm-recipe-equipment-list .wprm-recipe-equipment-item .wprm-recipe-equipment-name" + ) + equipment_list = [item.get_text(strip=True) for item in equipment_items] + + return get_equipment(equipment_list) diff --git a/recipe_scrapers/cambreabakes.py b/recipe_scrapers/cambreabakes.py new file mode 100644 index 000000000..8fa296a47 --- /dev/null +++ b/recipe_scrapers/cambreabakes.py @@ -0,0 +1,25 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients +from ._utils import get_equipment + + +class CambreaBakes(AbstractScraper): + @classmethod + def host(cls): + return "cambreabakes.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".wprm-recipe-ingredient-group h4", + ".wprm-recipe-ingredient", + ) + + def equipment(self): + equipment_items = self.soup.select( + ".wprm-recipe-equipment.wprm-recipe-equipment-list .wprm-recipe-equipment-item .wprm-recipe-equipment-name" + ) + equipment_list = [item.get_text(strip=True) for item in equipment_items] + + return get_equipment(equipment_list) diff --git a/recipe_scrapers/colleenchristensennutrition.py b/recipe_scrapers/colleenchristensennutrition.py new file mode 100644 index 000000000..30f051e6e --- /dev/null +++ b/recipe_scrapers/colleenchristensennutrition.py @@ -0,0 +1,16 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients + + +class ColleenChristensenNutrition(AbstractScraper): + @classmethod + def host(cls): + return "colleenchristensennutrition.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".wprm-recipe-ingredient-group h4", + ".wprm-recipe-ingredient", + ) diff --git a/recipe_scrapers/cookiesandcups.py b/recipe_scrapers/cookiesandcups.py new file mode 100644 index 000000000..374ef5bd3 --- /dev/null +++ b/recipe_scrapers/cookiesandcups.py @@ -0,0 +1,29 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients +from ._utils import get_equipment + + +class CookiesAndCups(AbstractScraper): + @classmethod + def host(cls): + return "cookiesandcups.com" + + def author(self): + return self.soup.select_one( + ".post-author-detail.post-author-by .entry-author-name a" + ).get_text(strip=True) + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".tasty-recipes-ingredients-body p strong", + ".tasty-recipes-ingredients-body ul li", + ) + + def equipment(self): + equipment_items = self.soup.select( + ".tasty-recipes-instructions-body ol li a.tasty-link" + ) + equipment_links_text = [item.get_text(strip=True) for item in equipment_items] + return get_equipment(equipment_links_text) diff --git a/tests/test_data/abeautifulmess.com/abeautifulmess_1.json b/tests/test_data/abeautifulmess.com/abeautifulmess_1.json new file mode 100644 index 000000000..579c2a9ee --- /dev/null +++ b/tests/test_data/abeautifulmess.com/abeautifulmess_1.json @@ -0,0 +1,48 @@ +{ + "author": "Elsie Larson", + "canonical_url": "https://abeautifulmess.com/banana-ice-cream/", + "site_name": "A Beautiful Mess", + "host": "abeautifulmess.com", + "language": "en-US", + "title": "Banana Ice Cream", + "ingredients": [ + "2 bananas (sliced )", + "1 cup milk", + "1 tablespoon agave syrup" + ], + "instructions_list": [ + "In your pint container, combine sliced banana, milk and agave. Stir to combine (it's OK for the banana to remain in chunks). Cover the pint and freeze for 24 hours.", + "Use your Ninja Creami machine on “Ice Cream” setting.", + "Remove the pint and take a look at your ice cream. If you think the texture is a bit chalky (or not as creamy as you want), make a hole in the center of the ice cream and add a tablespoon of water or milk. Then, use the “re-spin” function.", + "We recommend adding sprinkles, chocolate chips or sliced bananas to the top. Enjoy your ice cream right away!" + ], + "category": "Dessert", + "yields": "2 servings", + "description": "Learn to make fresh, healthy banana ice cream using only three ingredients: bananas, milk and sweetener (such as agave).", + "total_time": 10, + "prep_time": 10, + "cuisine": "American", + "ratings": 5.0, + "ratings_count": 3, + "equipment": [ + "1 Ninja Creami ice cream maker " + ], + "nutrients": { + "servingSize": "1 serving", + "calories": "211 kcal", + "fatContent": "4 g", + "saturatedFatContent": "2 g", + "unsaturatedFatContent": "1.2 g", + "carbohydrateContent": "41 g", + "sugarContent": "27 g", + "proteinContent": "5 g", + "sodiumContent": "48 mg", + "fiberContent": "3 g", + "cholesterolContent": "15 mg" + }, + "image": "https://abeautifulmess.com/wp-content/uploads/2024/07/Banana-Ice-Cream.jpg", + "keywords": [ + "Banana Ice Cream", + "Banana Ninja Creami Ice Cream" + ] +} diff --git a/tests/test_data/abeautifulmess.com/abeautifulmess_1.testhtml b/tests/test_data/abeautifulmess.com/abeautifulmess_1.testhtml new file mode 100644 index 000000000..4ec00078e --- /dev/null +++ b/tests/test_data/abeautifulmess.com/abeautifulmess_1.testhtml @@ -0,0 +1,1529 @@ + + + + + + + + + + + + + + + Banana Ice Cream - A Beautiful Mess + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + +
+ +

Banana Ice Cream

+
+ + Jump to Recipe +
5 from 3 votes
+

This post may contain affiliate links.

+
+
+ + +
+ +
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/abeautifulmess.com/abeautifulmess_2.json b/tests/test_data/abeautifulmess.com/abeautifulmess_2.json new file mode 100644 index 000000000..2b7f19865 --- /dev/null +++ b/tests/test_data/abeautifulmess.com/abeautifulmess_2.json @@ -0,0 +1,94 @@ +{ + "author": "Emma Chapman", + "canonical_url": "https://abeautifulmess.com/pumpkin-bars/", + "site_name": "A Beautiful Mess", + "host": "abeautifulmess.com", + "language": "en-US", + "title": "Pumpkin Cake", + "ingredients": [ + "15 ounces pumpkin puree", + "1 cup granulated white sugar", + "½ cup brown sugar", + "1 cup vegetable oil", + "1 teaspoon vanilla extract", + "4 eggs", + "2 cups all-purpose flour", + "2 teaspoons pumpkin pie spice", + "2 teaspoons baking powder", + "1 teaspoon baking soda", + "1 teaspoon salt", + "¼ cup butter", + "8 ounces cream cheese", + "1 teaspoon vanilla extract", + "2 cups confectioners' sugar" + ], + "ingredient_groups": [ + { + "ingredients": [ + "15 ounces pumpkin puree", + "1 cup granulated white sugar", + "½ cup brown sugar", + "1 cup vegetable oil", + "1 teaspoon vanilla extract", + "4 eggs", + "2 cups all-purpose flour", + "2 teaspoons pumpkin pie spice", + "2 teaspoons baking powder", + "1 teaspoon baking soda", + "1 teaspoon salt" + ], + "purpose": null + }, + { + "ingredients": [ + "¼ cup butter", + "8 ounces cream cheese", + "1 teaspoon vanilla extract", + "2 cups confectioners' sugar" + ], + "purpose": "Frosting" + } + ], + "instructions_list": [ + "In a large bowl, stir together the pumpkin puree, granulated white sugar, brown sugar, and oil.", + "Then stir in the eggs and vanilla extract. Set aside.", + "In a medium bowl, whisk together the all-purpose flour, pumpkin pie spice, baking powder, baking soda and salt.", + "Stir the dry ingredients into the wet ingredients until no dry flour is still visible.", + "Butter or spray (with nonstick cooking spray) a 9×13 baking pan. Then spoon the batter in an even layer.", + "Bake at 350°F (177°C) for 26-28 minutes, until a toothpick inserted in the cake comes out clean (no gooey batter on the toothpick).", + "Allow the cake to fully cool before adding frosting.", + "To make the frosting, cream together the softened butter and softened cream cheese.", + "Then incorporate the vanilla extract and powdered sugar (confectioners' sugar). Spread the frosting over the cooled cake." + ], + "category": "Dessert", + "yields": "12 servings", + "description": "A soft pumpkin sheet cake with cream cheese frosting", + "total_time": 35, + "cook_time": 26, + "prep_time": 9, + "cuisine": "American", + "ratings": 4.88, + "ratings_count": 8, + "equipment": [ + "9×13 baking pan" + ], + "nutrients": { + "servingSize": "1 serving", + "calories": "550 kcal", + "fatContent": "30 g", + "saturatedFatContent": "10 g", + "unsaturatedFatContent": "18 g", + "transFatContent": "0.3 g", + "carbohydrateContent": "66 g", + "sugarContent": "47 g", + "proteinContent": "6 g", + "sodiumContent": "472 mg", + "fiberContent": "2 g", + "cholesterolContent": "84 mg" + }, + "image": "https://abeautifulmess.com/wp-content/uploads/2023/10/best-pumpkin-bars.jpg", + "keywords": [ + "cake", + "pumpkin" + ] +} diff --git a/tests/test_data/abeautifulmess.com/abeautifulmess_2.testhtml b/tests/test_data/abeautifulmess.com/abeautifulmess_2.testhtml new file mode 100644 index 000000000..88b8cbdc4 --- /dev/null +++ b/tests/test_data/abeautifulmess.com/abeautifulmess_2.testhtml @@ -0,0 +1,1710 @@ + + + + + + + + + + + + + + + Pumpkin Cake - A Beautiful Mess + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + +
+ +

Pumpkin Cake

+
+ + Jump to Recipe +
4.9 from 8 votes
+

This post may contain affiliate links.

+
+
+ + +
+ +
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/barefootinthepines.com/barefootinthepines_1.json b/tests/test_data/barefootinthepines.com/barefootinthepines_1.json new file mode 100644 index 000000000..81058a5d9 --- /dev/null +++ b/tests/test_data/barefootinthepines.com/barefootinthepines_1.json @@ -0,0 +1,52 @@ +{ + "author": "Barefoot In The Pines", + "canonical_url": "https://barefootinthepines.com/brussel-sprouts-with-bacon/", + "site_name": "Barefoot In The Pines", + "host": "barefootinthepines.com", + "language": "en-US", + "title": "Maple Brussels Sprouts With Bacon", + "ingredients": [ + "3 slices thick-cut bacon, diced", + "1 tablespoons olive oil", + "1 lb fresh Brussels sprouts, trimmed, outer leaves removed, and halved", + "1/2 teaspoon coarse Kosher Salt", + "1/4 teaspoon pepper", + "2 tablespoons pure maple syrup (not pancake syrup)" + ], + "instructions_list": [ + "In a large skillet, cook the diced bacon over medium heat until crispy, about 5-7 minutes. Remove the bacon with a slotted spoon and drain on a plate lined with paper towels. Leave the bacon grease in the pan.", + "Add 1 tablespoon of olive oil to the skillet with the bacon grease and heat over medium heat. Place the the halved Brussels sprouts cut-side down in the pan. Do your best to make a single layer. Push overlapping sprouts out to the side of the pan.", + "Cook for 5 -7 minutes until the sprouts start to develop a golden-brown sear.", + "Season with salt and pepper. Move the golden brown sprouts to the outer edges of the pan and flip to brown on the other side. Shift the paler sprouts (cut side down) to the center of the pan to brown. Continue cooking for another 5 minutes. Hint: Add 1 tablespoon of oil if the pan looks dry.", + "Continue flipping and cooking the remaining Brussels sprouts for another 2-5 minutes until all the sprouts are tender, but still green and covered in crispy brown spots.", + "Once the sprouts are tender, remove the pan from the heat. Drizzle the maple syrup over the Brussels sprouts and toss to coat in the maple glaze.", + "Transfer the maple-glazed Brussel sprouts to a serving dish and top with crispy bacon. Serve warm." + ], + "category": "Thanksgiving Recipes", + "yields": "4 servings", + "description": "A delicious recipe for pan fried brussels sprouts with bacon. Fresh brussels sprouts are seared until golden brown and tender and topped with maple syrup and crispy bacon.", + "total_time": 30, + "cook_time": 20, + "prep_time": 10, + "cuisine": "Side Dishes", + "nutrients": { + "servingSize": "1", + "calories": "139", + "fatContent": "7g", + "saturatedFatContent": "2g", + "unsaturatedFatContent": "5g", + "transFatContent": "0g", + "carbohydrateContent": "15g", + "sugarContent": "8g", + "proteinContent": "6g", + "sodiumContent": "334mg", + "fiberContent": "3g", + "cholesterolContent": "9mg" + }, + "image": "https://barefootinthepines.com/wp-content/uploads/2024/09/Maple-Bacon-Brussels-Sprouts-4-720x720.jpg", + "keywords": [ + "Brussel Sprouts With Bacon", + "Maple Brussels Sprouts With Bacon", + "Brussels Sprouts With Bacon and Maple Syrup" + ] +} diff --git a/tests/test_data/barefootinthepines.com/barefootinthepines_1.testhtml b/tests/test_data/barefootinthepines.com/barefootinthepines_1.testhtml new file mode 100644 index 000000000..c5f3be6e4 --- /dev/null +++ b/tests/test_data/barefootinthepines.com/barefootinthepines_1.testhtml @@ -0,0 +1,1247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Maple Brussel Sprouts With Bacon - Barefoot In The Pines + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+
+
+
+
+
Home » Sides » Maple Brussel Sprouts With Bacon

Maple Brussel Sprouts With Bacon

+
+
+

+Sharing is caring!

+ +

This post may contain affiliate links, see my disclosure policy for details.

+
+

Make the best Brussels sprouts without roasting! This pan-seared version gives you crispy Brussels sprouts seared in a cast iron skillet and topped with a maple syrup glaze and crispy salty bacon. Ready in less than 20 minutes from pan to table!

+
A skillet filled with roasted Brussels sprouts and bits of bacon. The Brussels sprouts are caramelized, giving them a golden-brown appearance.
+

Look, it’s hard to get jazzed by a vegetable. But when I tell you that I’ve fallen in love with brussels sprouts, you know these have got to be good.

+

This recipe was created to give you a tasty side dish, but to also make a recipe where brussels sprouts don’t taste bad!

+

Brussels by nature are bitter when cooked. But if you sear them until crispy and top the brussels sprouts with bacon and maple syrup, you’ve got a one-two punch of sweet and salty to wipe out that bitterness!

+

It just wouldn’t be a New England recipe without some salty pork and maple somewhere. But I promise you this, after one bite you’ll be hooked on these sprouts!

+

Ingredients

+
Bowl of halved Brussels sprouts next to smaller bowls of chopped bacon, maple syrup, and salt and pepper on a marble countertop.
+
    +
  • Thick-Cut Bacon. Just a few slices, diced.
  • +
  • Olive Oil. I use extra virgin olive oil, but you can use avocado oil too.
  • +
  • Fresh Brussels sprouts. Trimmed with outer leaves removed and cut in half.
  • +
  • Pure Maple Syrup. Do not use pancake syrup.
  • +
  • Coarse Kosher Salt and Black Pepper. To taste.
  • +
+

How to Make Brussel Sprouts With Bacon

+

Step 1:

+
+
Small pieces of raw bacon are placed in the center of a large, black skillet.
+

In a large skillet, cook the diced bacon over medium heat until crispy, about 5-7 minutes.

+
+
+
Close-up of a metal slotted spoon holding cooked bacon bits over a black frying pan with grease and scattered bacon pieces.
+

Remove the bacon with a slotted spoon and drain on a plate lined with paper towels. Leave the bacon grease in the pan.

+
+

Step 2:

+
Brussels sprouts being cooked in a black cast iron skillet.
+

Add 1 tablespoon of olive oil to the skillet with the bacon grease and heat over medium heat. Place the the halved Brussels sprouts cut-side down in the pan. Do your best to make a single layer. Push overlapping sprouts out to the side of the pan.

+
+
Close-up of roasted Brussels sprouts, some halved, displaying a browned and crispy texture on a black baking sheet.
+

Cook for 5 -7 minutes until the sprouts start to develop a golden-brown sear.

+
+

Step 3:

+
A cast iron pan holds roasted Brussels sprouts, some of which are cut in half, showing a golden brown color on the cut sides.
+

Season with salt and pepper. Move the golden brown sprouts to the outer edges of the pan and flip to brown on the other side.

+
+
Sautéed Brussels sprouts with browned sides are cooking in a cast-iron skillet.
+

Shift the paler sprouts (cut side down) to the center of the pan to brown. Continue cooking for another 5 minutes.

+
+

Hint: Add 1 tablespoon of oil if the pan looks dry.

+

Step 4:

+
Close-up of roasted Brussels sprouts in a skillet, showing golden-brown, crispy edges.
+

Continue flipping and cooking the remaining Brussels sprouts for another 2-5 minutes until all the sprouts are tender, but still green, and covered in crispy brown spots.

+

Hint: Cooking times will fluctuate based on the size of Brussel sprouts. Big sprouts need that extra 5 minutes at the end. Feel free to remove smaller sprouts and set them aside with the bacon while you finish cooking the big sprouts.

+

Step 5:

+
Hand pouring maple syrup over roasted Brussels sprouts in a black skillet.
+

Once the sprouts are tender, remove the pan from the heat. Drizzle the maple syrup over the Brussels sprouts and toss to coat in the maple glaze.  

+

Step 6:

+
A square white plate holds roasted Brussels sprouts mixed with crispy bacon bits. A blue napkin is partially visible on the left side of the wooden surface the plate is on.
+

Transfer the maple-glazed Brussel sprouts to a serving dish and top with crispy bacon. Serve warm.

+

Tip: Cover the Brussels sprouts with aluminum foil to keep warm if not serving immediately.

+

Pro Tips

+
    +
  • During the cooking process, move well browned Brussels sprouts to the outer edge of the pan (where it’s cooler) and move less browned sprouts to the center to sear and get golden brown.
  • +
  • Sear the brussel sprouts in a combination of bacon fat and olive oil. The olive oil will give the sprouts a crispy sear without burning, while the bacon fat will add flavor.
  • +
  • Add the maple syrup after cooking so that it doesn’t burn.
  • +
+

What To Serve With Maple Bacon Brussels Sprouts

+

This is the perfect side dish to serve during the week alongside some roast chicken, Baked Cod, a bowl of creamy Fish Chowder.

+

These sprouts are a great side dish at a family gathering or holiday party, alongside some fresh Fall Salads.

+

Because these sprouts are made on the stovetop instead of roasted in the oven, they’re the perfect Thanksgiving side vegetable. All elements can be prepped in advance, don’t take up precious oven space.

+
Pan-fried Brussels sprouts with crispy edges and scattered bacon bits in a skillet.
+

Variations

+
    +
  • Omit the bacon and sear the sprouts in a combination of 1 tablespoon oil and 1 tablespoon butter to make this a vegetarian dish. For crunch, add salted toasted almonds (see my pan fried asparagus for inspiration).
  • +
  • Frozen Brussels sprouts can be used. Thaw long enough to cut in half and then sear over medium high heat. The cooking time will be shorter and they may not get as crispy.
  • +
  • Honey can be used in place of maple syrup.
  • +
+

Maple Balsamic Brussels Sprouts

+

Add a tablespoon of balsamic vinegar along with the maple syrup or use my maple balsamic dressing for a sweet balsamic glaze over the sprouts.

+

FAQs

+
Do I need to boil Brussels sprouts first?

Nope! We cook these on medium heat and rotate the sprouts for even cooking. They sear beautifully and cook through in 15-20 minutes.

Why won’t my brussels sprouts get crispy?

Overcrowding the pan will cause the sprouts to steam instead of sear. When you’re pan frying sprouts, keep them in a single layer. Frozen sprouts won’t get super crispy because there is just too much moisture in them.

+

Storage

+

Store leftover maple Brussels sprouts in an airtight container in the fridge for up to 5 days.

+

Reheating Leftovers

+

You can reheat leftovers in the microwave until warmed through or in a skillet on medium heat for 4-5 minutes.

+

I don’t recommend reheating in the air fryer on account of the maple glaze. It’ll make a mess and burn at the bottom.

+
Image of a whisk
+

If you make this recipe, give it a 5 STAR Rating and Leave a Comment!

+
+

More Side Dishes You’ll Love

+
+
+ +
+
+

Save This Recipe

+

Just enter your email below and we will send this recipe right to your inbox, plus we will send more yummy recipes and ideas.

+
+ + +
+
+
+
+ +
+
+
+A square white plate holds roasted Brussels sprouts mixed with crispy bacon bits. A blue napkin is partially visible on the left side of the wooden surface the plate is on.

Maple Brussels Sprouts With Bacon

+
+
+Yield: +4 Servings +
+
+Prep Time: +10 minutes +
+
+Cook Time: +20 minutes +
+
+Total Time: +30 minutes +
+
+
+

A delicious recipe for pan fried brussels sprouts with bacon. Fresh brussels sprouts are seared until golden brown and tender and topped with maple syrup and crispy bacon.

+
+
+ +
+ +
+
+
+

Ingredients

+
    +
  • +3 slices thick-cut bacon, diced
  • +
  • +1 tablespoons olive oil
  • +
  • +1 lb fresh Brussels sprouts, trimmed, outer leaves removed, and halved
  • +
  • +1/2 teaspoon coarse Kosher Salt
  • +
  • +1/4 teaspoon pepper
  • +
  • +2 tablespoons pure maple syrup (not pancake syrup)
  • +
+
+
+
+

Instructions

+
  1. In a large skillet, cook the diced bacon over medium heat until crispy, about 5-7  minutes. Remove the bacon with a slotted spoon and drain on a plate lined with paper towels. Leave the bacon grease in the pan.
  2. Add 1 tablespoon of olive oil to the skillet with the bacon grease and heat over medium heat. Place the the halved Brussels sprouts cut-side down in the pan. Do your best to make a single layer. Push overlapping sprouts out to the side of the pan.
  3. Cook for 5 -7 minutes until the sprouts start to develop a golden-brown sear.
  4. Season with salt and pepper. Move the golden brown sprouts to the outer edges of the pan and flip to brown on the other side. Shift the paler sprouts (cut side down) to the center of the pan to brown. Continue cooking for another 5 minutes. Hint: Add 1 tablespoon of oil if the pan looks dry.
  5. Continue flipping and cooking the remaining Brussels sprouts for another 2-5 minutes until all the sprouts are tender, but still green and covered in crispy brown spots.
  6. Once the sprouts are tender, remove the pan from the heat. Drizzle the maple syrup over the Brussels sprouts and toss to coat in the maple glaze.  
  7. Transfer the maple-glazed Brussel sprouts to a serving dish and top with crispy bacon. Serve warm.
+
+

Notes

+
+

    • Cooking times will fluctuate based on the size of Brussel sprouts. Big sprouts need that extra 5 minutes at the end. Feel free to remove smaller sprouts from the pan and set them aside with the bacon while you finish cooking the big sprouts.

+
+
+
+
+
Nutrition Information:
+Yield: 4 +Serving Size: 1 +
Amount Per Serving: +Calories: 139Total Fat: 7gSaturated Fat: 2gTrans Fat: 0gUnsaturated Fat: 5gCholesterol: 9mgSodium: 334mgCarbohydrates: 15gFiber: 3gSugar: 8gProtein: 6g +
+
+
+
+ +
+
+
+
+

+Sharing is caring!

+ +
+
+
+
+
+
+
+
+

Similar Posts

+ +
+
+
+
+
+
+

Leave a Reply

Your email address will not be published. Required fields are marked *

+ +

+ +

+ +

+
+
+
+ +
+
+
+
+ +
+
+ +Skip to Recipe
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_data/barefootinthepines.com/barefootinthepines_2.json b/tests/test_data/barefootinthepines.com/barefootinthepines_2.json new file mode 100644 index 000000000..e02d728ef --- /dev/null +++ b/tests/test_data/barefootinthepines.com/barefootinthepines_2.json @@ -0,0 +1,96 @@ +{ + "author": "Michelle", + "canonical_url": "https://barefootinthepines.com/chocolate-pie-with-graham-cracker-crust/", + "site_name": "Barefoot In The Pines", + "host": "barefootinthepines.com", + "language": "en-US", + "title": "Chocolate Pie With A Graham Cracker Crust", + "ingredients": [ + "1 cup heavy cream", + "3 tablespoons sugar", + "1/2 teaspoon of vanilla extract", + "12 ounces of semisweet chocolate, broken into pieces", + "2 tablespoons granulated sugar", + "1 1/2 cups whole milk", + "1/2 cup heavy cream", + "4 large egg yolks", + "1 teaspoon vanilla", + "12 whole honey graham cracker sheets (1 1/2 cups, packed )", + "6 tablespoons of unsalted butter, melted", + "3 tablespoons granulated sugar", + "⅛ teaspoon coarse kosher salt" + ], + "ingredient_groups": [ + { + "ingredients": [ + "12 whole honey graham cracker sheets (1 1/2 cups, packed )", + "6 tablespoons of unsalted butter, melted", + "3 tablespoons granulated sugar", + "⅛ teaspoon coarse kosher salt" + ], + "purpose": "Homemade Graham Cracker Crust" + }, + { + "ingredients": [ + "12 ounces of semisweet chocolate, broken into pieces", + "2 tablespoons granulated sugar", + "1 1/2 cups whole milk", + "1/2 cup heavy cream", + "4 large egg yolks", + "1 teaspoon vanilla" + ], + "purpose": "Chocolate Pudding Filling" + }, + { + "ingredients": [ + "1 cup heavy cream", + "3 tablespoons sugar", + "1/2 teaspoon of vanilla extract" + ], + "purpose": "Whipped Cream" + } + ], + "instructions_list": [ + "Preheat the oven to 350º and lightly spray a 9\" or 10\" pie plate with cooking spray.", + "Crush the graham cracker sheets into fine crumbs and place in a medium sized bowl with the sugar and salt.", + "Add the melted butter and stir until the cracker crumbs are evenly moistened and clumping.", + "Pour the crumbs into the pie plate and press into a compact and even layer. Use a flat bottomed glass to help tamp down the crust. Press the graham crackers up the side of the pie plate as well, packing the crumbs together as tightly and evenly as possible.", + "Bake your graham cracker crust in a 350º oven for 10-15 minutes until golden brown and smells toasty.", + "Place the chocolate pieces in a large bowl and set aside.", + "In a small saucepan, heat the milk and cream over medium heat until steaming and just starts to simmer, do not boil. Take the pan off the heat.", + "In a small dish, whisk together the egg yolks and sugar.", + "SLOWLY drizzle ½ a cup of the hot cream into the egg yolks. Whisk until smooth and the yolks are warmed. This is called tempering.", + "Add the yolks back to the pot with the cream and turn the heat back up to medium heat. Stir until the custard has thickened and starts to bubble. Remove from the heat and stir in the vanilla extract.", + "Set a fine mesh strainer over the bowl with the chocolate pieces. Pour the pudding base through the strainer (this will catch any scrambled egg bits) and let the hot liquid sit on the chocolate for 3-5 minutes.", + "Whisk the pudding until the chocolate is completely melted and smooth. Pour the chocolate pudding into the prepared graham cracker crust. Chill in the fridge until set, about 5 hours or overnight is best.", + "Before serving, make the whipped cream by beating the heavy cream on medium speed (with a hand mixer or stand mixer) until frothy. Add in the vanilla and sugar and beat on high speed until thick, doubled in volume, and the whipped cream stands on the end of the beater without falling over.", + "Decorate the pie with the whipped cream, or serve on the side!" + ], + "category": "Sweets", + "yields": "12 servings", + "description": "This creamy chocolate pie with a buttery graham cracker crust is the ultimate no-fuss, show-stopping dessert. Skip the rolled dough and impress guests with this easy, and decadent treat!", + "total_time": 37, + "cook_time": 12, + "prep_time": 25, + "cuisine": "Thanksgiving Desserts", + "nutrients": { + "servingSize": "1 Slice", + "calories": "434", + "fatContent": "30g", + "saturatedFatContent": "17g", + "unsaturatedFatContent": "11g", + "transFatContent": "0g", + "carbohydrateContent": "41g", + "sugarContent": "30g", + "proteinContent": "6g", + "sodiumContent": "131mg", + "fiberContent": "2g", + "cholesterolContent": "129mg" + }, + "image": "https://barefootinthepines.com/wp-content/uploads/2024/09/Chocolate-Pie-With-Graham-Cracker-Crust-7-720x720.jpg", + "keywords": [ + "Chocolate Pie With Graham Cracker Crust", + "Chocolate Cream Pie With Graham Cracker Crust", + "Chocolate Pudding Pie With Graham Cracker Crust" + ] +} diff --git a/tests/test_data/barefootinthepines.com/barefootinthepines_2.testhtml b/tests/test_data/barefootinthepines.com/barefootinthepines_2.testhtml new file mode 100644 index 000000000..9a7d31345 --- /dev/null +++ b/tests/test_data/barefootinthepines.com/barefootinthepines_2.testhtml @@ -0,0 +1,1092 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Chocolate Pie With Graham Cracker Crust - Barefoot In The Pines + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+
+
+
+
+
Home » Thanksgiving Recipes » Chocolate Pie With Graham Cracker Crust

Chocolate Pie With Graham Cracker Crust

+
+
+

+Sharing is caring!

+ +

This post may contain affiliate links, see my disclosure policy for details.

+
+

When it’s time to entertain, you want a dessert that will stop everyone in their tracks and won’t keep you in the kitchen all day. This Chocolate Cream Pie with Graham Cracker Crust is your answer.

+
A slice of chocolate pie with a graham cracker crust and a dollop of whipped cream on top, served on a white plate. A fork is cutting into the pie.
+

I’m willing to claim that this might just be THE BEST chocolate cream pie ever. I’ve seen people go completely speechless after a bite!

+

It’s actually my take on my husband’s favorite childhood pie from a little restaurant in Downeast Maine. Getting to the original is quite the trek, but this pie fills that void—and no one will guess how easy it is!

+

Normally, I use an all-butter crust, but when life gets busy, a homemade graham cracker crust is the ultimate time-saver.

+

The graham cracker crust is the perfect combination with the rich chocolate pudding. It’s buttery, crisp, a little salty, and holds everything together for a mountain of whipped cream on top!

+

Why You’ll Love This Chocolate Pie Recipe

+
A chocolate pie with a missing slice is in a white ceramic pie dish. The pie is topped with dollops of whipped cream. In the background, there's additional whipped cream in a glass bowl.
+
    +
  • Easy, no-fail pie that sets perfectly every time.
  • +
  • Fast and easier than making a traditional pie crust and makes a great dessert for the holidays.
  • +
  • Can be made in advance and refrigerates and freezes beautifully.
  • +
  • An impressive dessert everyone will love
  • +
  • Super rich and smooth chocolatey filling. It’s a million times more flavorful than instant pudding mix.
  • +
+

I’ve swapped pastry crusts for graham cracker crusts countless times (like with my lemon bars, apple pie, and even, pumpkin pie), and it just makes baking much simpler.

+

Ingredients for Chocolate Pie With Graham Cracker Crust

+

This easy chocolate cream pie recipe has three components: the graham cracker crust, chocolate pudding, and whipped cream. I use my favorite homemade graham cracker crust recipe for this pie, but feel free to use storebought if you’re short on time!

+
Ingredients for a chocolate pie recipe arranged on a marble countertop, including a pie crust, egg yolks, chocolate pieces, heavy cream, sugar, and vanilla extract.
+

Graham Cracker Crust:

+
    +
  • Graham Cracker Sheets – You’ll need 12 whole graham crackers (about 1 1/2 cups of crumbs). My preferred brand is Honey Maid.
  • +
  • Unsalted Butter – Melted. If all you have is salted butter, omit the salt called for in the recipe.
  • +
  • Granulated Sugar
  • +
  • Coarse Kosher Salt
  • +
+

The Chocolate Pudding Filling:

+
    +
  • Semi-sweet Chocolate Bar – broken into pieces. I love using Ghirardelli Semisweet Baking Bars.
  • +
  • Granulated Sugar
  • +
  • Whole Milk – you really want to use full fat milk to get the best texture and creaminess
  • +
  • Heavy Cream or Heavy Whipping Cream
  • +
  • Egg Yolks
  • +
  • Vanilla Extract
  • +
+

Hint: This pudding sets up nice and thick, almost like a chocolate truffle. A lot of recipes will call for cornstarch or cocoa powder, but the custard base and the melted chocolate in this recipe sets up thick and sliceable.

+

Homemade Whipped Cream

+
    +
  • Heavy Whipping Cream
  • +
  • Sugar – I use granulated sugar, but you can use powdered sugar too.
  • +
  • Vanilla Extract
  • +
+

Step by Step Instructions

+

This may look like a lot of steps, but I promise this chocolate pie comes together so easily! Total time (hands-on) is less than 45 minutes!

+

Step 1

+

Preheat the oven to 350º and lightly spray a 9″ or 10″ pie plate with cooking spray. 

+

Step 2

+
Graham cracker crumbs in a hand.
+

Crush the graham cracker sheets into fine crumbs either in a food processor or by hand. Place in a medium sized bowl with the sugar and salt.

+

Step 3

+
+

Add the melted butter and stir until the graham cracker crumbs are evenly moistened and clumping.

+

Step 4

+
A measuring cup and hand pressing the graham cracker crumbs into place.
+

Pour the crumb mixture into the pie pan and press into a compact and even layer. Use a flat bottomed glass to help tamp down the crust. Press the graham crackers up the side of the pie plate as well, packing the crumbs together as tightly and evenly as possible. 

+

Step 5

+
Overhead of graham cracker crust.
+

Bake your graham cracker crust in a 350º oven for 10-15 minutes until golden brown and smells toasty.

+

Step 6

+

Place the chocolate pieces in a large bowl and set aside.

+

Step 7

+
A stainless steel saucepan filled with milk is placed on a marble countertop next to a graham cracker crust and a bowl of melted butter.
+

In a small or medium saucepan, heat the milk and cream over medium heat until steaming and just starting to simmer, not boil. Turn off the heat.

+

Step 8

+
A whisk rests in a glass bowl with beaten eggs on a marble countertop.
+

In a small or medium bowl, whisk together the egg yolks and sugar.

+

Step 9

+
A hand pours milk from a measuring cup into a glass bowl containing a yellow mixture, with kitchen utensils and bowls in the background.
+

SLOWLY drizzle ½ a cup of the hot cream into the egg yolks. Whisk until smooth and the yolks are warmed. This is called tempering.

+

Hint: tempering will keep the yolks from scrambling in the filling.

+

Step 10

+
+
Egg mixture being poured from a bowl into a pan of milk, creating foam on the surface.
+

Add the yolk and cream mixture back to the pot and turn the heat back up to medium heat.

+
+
+
A wooden spoon rests on top of a saucepan filled with creamy custard.
+

Stir until thickened and starting to bubble. Hint: the custard should coat the back of a spoon without running off immediately.

+

Remove from the heat and stir in the vanilla extract.

+
+

Step 11

+
A bowl of light yellow batter with pieces of chocolate visible, on a white surface.
+

Set a fine mesh strainer over the bowl with the chocolate pieces.

+

Pour the pudding base through the strainer (this will catch any scrambled egg bits) over the chocolate pieces. Let the hot liquid sit on the chocolate for 3-5 minutes. 

+

Step 12

+
+
A bowl of chocolate pie filling with a whisk, next to a blue spatula and a pie crust on a marble surface.
+

Whisk the pudding until the chocolate is completely melted and smooth.

+
+
+
Top view of a chocolate pie in a white fluted pie dish, featuring a smooth chocolate filling and a golden-brown graham cracker crust.
+

Pour the chocolate filling into the prepared graham cracker crust. Chill in the fridge until set, at least 5 hours, but overnight is best. 

+
+

Step 13

+

Before serving, make the whipped cream. Pour the heavy cream into a bowl of a stand mixer fitted with the whisk attachment or in a large metal bowl if using a hand mixer.

+

Beat the cream on medium speed until frothy.

+

Add in the vanilla and sugar and beat on high speed until thick, doubled in volume, and the whipped cream stands in stiff peaks on the end of the beater without falling over.

+
+
+
A chocolate pie with a graham cracker crust and topped with five dollops of whipped cream arranged around the edge. A striped kitchen towel is placed nearby.
+

Decorate the pie with the whipped cream, or serve it on the side!

+
+
+

Tips & Tricks

+
    +
  • Tempering the yolks with a little hot cream before pouring into the saucepan will prevent the yolks from scrambling.
  • +
  • Pour the pudding into the graham cracker crust while they’re both still warm. This will help the slices stay together after cutting.
  • +
  • Allow the pie to cool completely in the fridge before covering it in plastic wrap. That will prevent condensation and keep the pie crust from getting soggy.
  • +
  • Chill for at least 5 hours to set, but overnight is best.
  • +
  • Prep the pie crust 1-2 days ahead (chill or freeze) and bake it on the day you assemble the pie. This cuts down prep time (which is great for the busy holiday season)!
  • +
+
A chocolate pie with a graham cracker crust and topped with two dollops of whipped cream is partially sliced in a white pie dish.
+

How to Store 

+

Store leftover pie slices in an airtight container in the fridge for up to 5 days. If leaving the chocolate pie in the pie dish, press plastic wrap against any exposed slices and cover the top of the pie loosely with plastic wrap.

+

Freezing:

+
+
+

Slices of pie can be frozen for up to a month and stored in a freezer-safe airtight container. You can freeze the entire pie or individual slices! The night before serving, let the pie thaw in the fridge until ready to eat.

+
+
+

Substitutions 

+
    +
  • 12 ounces (2 cups) of semisweet chocolate chips can be swapped in place of chocolate bars.
  • +
  • Store-bought graham cracker pie crust can be used instead of a homemade pie crust. Make sure to get the 10″ or deep dish graham cracker crust.
  • +
  • Store-bought whipped cream, like Cool Whip, can be used.
  • +
  • Use gluten-free cookies or graham crackers for the graham cracker crust.
  • +
+

Variations for Chocolate Pudding Pie with Graham Cracker Crust

+
    +
  • Add a teaspoon of instant espresso powder to the cream mixture for an extra rich chocolate flavor.
  • +
  • For a super chocolatey pie, make this with an Oreo cookie crust or chocolate graham cracker crust
  • +
  • Stir peppermint, coconut, hazelnut, or almond extract into the chocolate pudding for extra flavor.
  • +
  • Top with shaved chocolate curls (you can use a potato peeler to make these easily), toasted nuts, toffee bits, or fresh fruit
  • +
+
A slice of chocolate pie with a graham cracker crust and whipped cream on top, served on a white plate with a fork beside it.
+

FAQs

+
Do I wrap this pie in plastic while it sets? 

I let the pie get cold for a couple of hours in the fridge uncovered and then cover the pie in plastic. This will keep condensation from forming and making the pie soggy. The filling in this pie doesn’t form a skin like other traditional pudding pies, so you don’t need to place plastic directly onto the chocolate layer.

Why didn’t my pie set properly? 

It’s most likely the filling didn’t chill long enough. This pie needs a minimum of 5 hours of chilling time to be sliceable. 

Can I use a store bought Graham Cracker Crust? 

Yes! Get the 10” or deep dish version and bake for 10-12 minutes at 350 degrees until browned.

Can I make this pie in advance? 

Yes! This is a perfect make ahead pie! The whole pie can be made 2-3 days in advance. You can also freeze the pie for up to 1 month.

+

More Desserts with Graham Cracker Crust

+
+
+ +
+
+

Save This Recipe

+

Just enter your email below and we will send this recipe right to your inbox, plus we will send more yummy recipes and ideas.

+
+ + +
+
+
+
+ +
+
+
+A slice of chocolate pie with a graham cracker crust and whipped cream on top, served on a white plate with a fork beside it.

Chocolate Pie With A Graham Cracker Crust

+
+
+Yield: +12 Servings +
+
+Prep Time: +25 minutes +
+
+Cook Time For The Crust: +12 minutes +
+
+Total Time: +37 minutes +
+
+
+

This creamy chocolate pie with a buttery graham cracker crust is the ultimate no-fuss, show-stopping dessert. Skip the rolled dough and impress guests with this easy, and decadent treat!

+
+
+ +
+ +
+
+
+

Ingredients

+

Homemade Graham Cracker Crust

+
    +
  • +12 whole honey graham cracker sheets (1 1/2 cups, packed )
  • +
  • +6 tablespoons of unsalted butter, melted
  • +
  • +3 tablespoons granulated sugar
  • +
  • +⅛ teaspoon coarse kosher salt
  • +
+

Chocolate Pudding Filling

+
    +
  • +12 ounces of semisweet chocolate, broken into pieces
  • +
  • +2 tablespoons granulated sugar
  • +
  • +1 1/2 cups whole milk
  • +
  • +1/2 cup heavy cream
  • +
  • +4 large egg yolks
  • +
  • +1 teaspoon vanilla
  • +
+

Whipped Cream

+
    +
  • +1 cup heavy cream
  • +
  • +3 tablespoons sugar
  • +
  • +1/2 teaspoon of vanilla extract
  • +
+
+
+
+

Instructions

+

Make The Crust

  1. Preheat the oven to 350º and lightly spray a 9" or 10" pie plate with cooking spray. 
  2. Crush the graham cracker sheets into fine crumbs and place in a medium sized bowl with the sugar and salt.
  3. Add the melted butter and stir until the cracker crumbs are evenly moistened and clumping.
  4. Pour the crumbs into the pie plate and press into a compact and even layer. Use a flat bottomed glass to help tamp down the crust. Press the graham crackers up the side of the pie plate as well, packing the crumbs together as tightly and evenly as possible. 
  5. Bake your graham cracker crust in a 350º oven for 10-15 minutes until golden brown and smells toasty.

Make the Chocolate Filling

  1. Place the chocolate pieces in a large bowl and set aside.
  2. In a small saucepan, heat the milk and cream over medium heat until steaming and just starts to simmer, do not boil. Take the pan off the heat.
  3. In a small dish, whisk together the egg yolks and sugar.
  4. SLOWLY drizzle ½ a cup of the hot cream into the egg yolks. Whisk until smooth and the yolks are warmed. This is called tempering.
  5. Add the yolks back to the pot with the cream and turn the heat back up to medium heat. Stir until the custard has thickened and starts to bubble. Remove from the heat and stir in the vanilla extract.
  6. Set a fine mesh strainer over the bowl with the chocolate pieces. Pour the pudding base through the strainer (this will catch any scrambled egg bits) and let the hot liquid sit on the chocolate for 3-5 minutes. 
  7. Whisk the pudding until the chocolate is completely melted and smooth. Pour the chocolate pudding into the prepared graham cracker crust. Chill in the fridge until set, about 5 hours or overnight is best. 

Make Homemade Whipped Cream

  1. Before serving, make the whipped cream by beating the heavy cream on medium speed (with a hand mixer or stand mixer) until frothy. Add in the vanilla and sugar and beat on high speed until thick, doubled in volume, and the whipped cream stands on the end of the beater without falling over.
  2. Decorate the pie with the whipped cream, or serve on the side!
+
+

Notes

+
+

  • You can use a store-bought graham cracker crust instead of making your own. Make sure to get the 10" or deep dish size!

+
+
+
+
+
Nutrition Information:
+Yield: 12 +Serving Size: 1 Slice +
Amount Per Serving: +Calories: 434Total Fat: 30gSaturated Fat: 17gTrans Fat: 0gUnsaturated Fat: 11gCholesterol: 129mgSodium: 131mgCarbohydrates: 41gFiber: 2gSugar: 30gProtein: 6g +
+
+
+
+ +
+
+
+
+

+Sharing is caring!

+ +
+
+
+
+
+
+
+
+

Similar Posts

+ +
+
+
+
+
+
+

Leave a Reply

Your email address will not be published. Required fields are marked *

+ +

+ +

+ +

+
+
+
+ +
+
+
+ +
+ +Skip to Recipe
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_data/betterfoodguru.com/betterfoodguru_1.json b/tests/test_data/betterfoodguru.com/betterfoodguru_1.json new file mode 100644 index 000000000..665b5f552 --- /dev/null +++ b/tests/test_data/betterfoodguru.com/betterfoodguru_1.json @@ -0,0 +1,63 @@ +{ + "author": "Sara Tercero", + "canonical_url": "https://betterfoodguru.com/southwest-quinoa-bean-salad/", + "site_name": "BetterFoodGuru", + "host": "betterfoodguru.com", + "language": "en-US", + "title": "Southwest Quinoa & Bean Salad", + "ingredients": [ + "2 cups quinoa (cooked and cooked, measured after cooking)", + "2 sweet potatoes (peeled and cubed)", + "15 oz black beans (canned, drained)", + "1 cup frozen corn (thawed)", + "1/4 red onion (diced)", + "1 tbsp olive oil", + "1/4 Salt and pepper", + "1 cup Cole slaw mix (red and green cabbage & carrots)", + "2 avocados (peeled and cubed)", + "1/4 cup sesame tahini", + "2 limes juiced", + "1/4 cup water", + "1 bunch cilantro", + "1/2 tsp salt" + ], + "instructions_list": [ + "First, cook quinoa according to boxes instructions and let cool", + "Then, preheat oven to 400", + "Next, on a sheet pan spread the sweet potato in a single layer, toss with olive oil and salt and bake for 25 minutes flipping once halfway", + "Make the dressing by combining tahini, lime juice, water, salt and cilantro in a blender and puree until creamy.", + "In a large bowl add the cloe slaw mix, cooled quinoa, sweet potatoes, avocadoes, corn and onions.", + "Last, add the dressing and toss well. Enjoy within 3 days for best quality." + ], + "category": "Appetizer,dinner,lunch,Main Course,Salad,Side Dish", + "yields": "6 servings", + "description": "This loaded quinoa salad with Southwestern flavors and a creamy tahini lime dressing is delicious. It is super hearty and full of black beans, corn and sweet potatoes. Perfect for a dinner salad or a lunch meal prep, this one is sure to be a favorite.", + "total_time": 40, + "cook_time": 40, + "cuisine": "American,california,fusion,Tex-Mex", + "ratings": 5.0, + "ratings_count": 13, + "nutrients": { + "servingSize": "1 serving", + "calories": "458 kcal", + "fatContent": "19 g", + "saturatedFatContent": "3 g", + "unsaturatedFatContent": "16 g", + "carbohydrateContent": "63 g", + "sugarContent": "5 g", + "proteinContent": "15 g", + "sodiumContent": "253 mg", + "fiberContent": "17 g" + }, + "image": "https://betterfoodguru.com/wp-content/uploads/2023/05/Loaded-Quinoa-Salad.jpg", + "keywords": [ + "black beans", + "blender dressing", + "cilantro", + "Easy", + "glutenfree", + "healthy", + "quinoa", + "tahini" + ] +} diff --git a/tests/test_data/betterfoodguru.com/betterfoodguru_1.testhtml b/tests/test_data/betterfoodguru.com/betterfoodguru_1.testhtml new file mode 100644 index 000000000..da88f6239 --- /dev/null +++ b/tests/test_data/betterfoodguru.com/betterfoodguru_1.testhtml @@ -0,0 +1,1881 @@ + + + + + + + + + Southwest Quinoa & Bean Salad - BetterFoodGuru + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/betterfoodguru.com/betterfoodguru_2.json b/tests/test_data/betterfoodguru.com/betterfoodguru_2.json new file mode 100644 index 000000000..b7e9c1dac --- /dev/null +++ b/tests/test_data/betterfoodguru.com/betterfoodguru_2.json @@ -0,0 +1,85 @@ +{ + "author": "Sara Tercero", + "canonical_url": "https://betterfoodguru.com/garden-salad-with-oregano-vinaigrette/", + "site_name": "BetterFoodGuru", + "host": "betterfoodguru.com", + "language": "en-US", + "title": "Garden Salad with Oregano Vinaigrette", + "ingredients": [ + "4 romaine hearts (chopped)", + "4 cups kale (stemmed and chopped)", + "4 radishes (sliced thin)", + "2 green onions (sliced, white and green parts)", + "4 jarred roasted red peppers (chopped)", + "15 oz can white beans (drained)", + "16 kalamata pitted olives (sliced)", + "1/2 cup almonds (sliced)", + "1 tbsp fresh oregano (chopped)", + "4 tbsp extra virgin olive oil", + "3 tbsp balsamic vinegar", + "1 tsp pure maple syrup", + "1 pinch salt", + "fresh ground pepper to your liking" + ], + "ingredient_groups": [ + { + "ingredients": [ + "4 romaine hearts (chopped)", + "4 cups kale (stemmed and chopped)", + "4 radishes (sliced thin)", + "2 green onions (sliced, white and green parts)", + "4 jarred roasted red peppers (chopped)", + "15 oz can white beans (drained)", + "16 kalamata pitted olives (sliced)", + "1/2 cup almonds (sliced)" + ], + "purpose": "Ingredients For the Salad:" + }, + { + "ingredients": [ + "1 tbsp fresh oregano (chopped)", + "4 tbsp extra virgin olive oil", + "3 tbsp balsamic vinegar", + "1 tsp pure maple syrup", + "1 pinch salt", + "fresh ground pepper to your liking" + ], + "purpose": "For Oregano Vinaigrette Dressing:" + } + ], + "instructions_list": [ + "Make the dressing by combining olive oil, vinegar, pure maple syrup, salt, pepper and oregano in a jar or bowl. Shake or whisk until well combined.", + "Optional Step: In a large salad bowl add the kale and 1 tbsp of the vinaigrette dressing. Massage the dressing into the kale with your hands to make the leaves tender and soft.", + "Add romaine, bell peppers, radishes, green onions, olives, beans and almonds to the bowl with the massaged kale.", + "Dress the salad by pouring the dressing over the top then tossing until well combined. Eat immediately." + ], + "category": "Appetizer,Salad,Side Dish", + "yields": "4 servings", + "description": "This Garden Salad with oregano vinaigrette is packed full of garden fresh veggies and has an incredible variety of textures! There is crisp romaine, hardy kale, crunchy radishes and almonds, plus vibrant roasted peppers and meaty white beans. Plus it's studded with tangy calamata olives. The oregano vinaigrette dressing tastes wicked good, it's sweet, zesty and super zippy.", + "total_time": 15, + "cuisine": "American,california,fusion,Italian,Mediterranean", + "nutrients": { + "servingSize": "1 serving", + "calories": "426 kcal", + "fatContent": "27 g", + "saturatedFatContent": "3 g", + "unsaturatedFatContent": "22 g", + "transFatContent": "0.003 g", + "carbohydrateContent": "38 g", + "sugarContent": "6 g", + "proteinContent": "14 g", + "sodiumContent": "798 mg", + "fiberContent": "12 g" + }, + "image": "https://betterfoodguru.com/wp-content/uploads/2024/05/garden-salad-3.jpg", + "keywords": [ + "beans and greens", + "Easy", + "easy dinner", + "garden", + "glutenfree", + "no-cook", + "quick", + "salad" + ] +} diff --git a/tests/test_data/betterfoodguru.com/betterfoodguru_2.testhtml b/tests/test_data/betterfoodguru.com/betterfoodguru_2.testhtml new file mode 100644 index 000000000..c1920232d --- /dev/null +++ b/tests/test_data/betterfoodguru.com/betterfoodguru_2.testhtml @@ -0,0 +1,1210 @@ + + + + + + + + + Garden Salad with oregano vinaigrette - BetterFoodGuru + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/beyondfrosting.com/beyondfrosting_1.json b/tests/test_data/beyondfrosting.com/beyondfrosting_1.json new file mode 100644 index 000000000..81c23e534 --- /dev/null +++ b/tests/test_data/beyondfrosting.com/beyondfrosting_1.json @@ -0,0 +1,57 @@ +{ + "author": "Julianne Dell", + "canonical_url": "https://beyondfrosting.com/lemon-cake-mix-cookies/", + "site_name": "Beyond Frosting", + "host": "beyondfrosting.com", + "language": "en-US", + "title": "Lemon Cake Mix Cookies", + "ingredients": [ + "1 box (15.25oz) Duncan Hines Lemon Cake Mix", + "½ cup (113g) Unsalted butter, melted", + "2 Large eggs", + "1 teaspoon Pure Lemon extract (or fresh lemon juice)", + "Zest from 1 large lemon", + "Sparkling Sanding Sugar for coating (1/3-1/2 cup)" + ], + "instructions_list": [ + "Preheat the oven to 350°F. Line a baking sheet with parchment paper or a silicone baking sheet", + "In a large mixing bowl, combine all the ingredients (except the sanding sugar) and mix until well combined. The dough will be thick.", + "Use a large cookie scoop to portion out the dough. Roll each ball of dough in the sanding sugar then place the dough about 2 inches apart on the prepared baking sheet.", + "Bake for 11-13 minutes. The center of the cookies should be slightly under-baked but not too gooey. Use a toothpick inserted into the center of a cookie to check for doneness." + ], + "category": "Cookies", + "yields": "11 servings", + "description": "These easy lemon cake mix cookies are quick to make with 5 ingredients! So soft and chewy, they're infused with fresh lemon flavor and rolled in sugar for crunch. Add in white chocolate chips for a delicious sweet-tart treat.", + "total_time": 22, + "cook_time": 12, + "prep_time": 10, + "cuisine": "American", + "cooking_method": "Oven", + "ratings": 5.0, + "ratings_count": 1, + "equipment": [ + "Large Cookie Scoop", + "Sanding Sugar", + "Silicone Baking Mat" + ], + "nutrients": { + "servingSize": "1 Cookie", + "calories": "242 calories", + "fatContent": "12.5 g", + "saturatedFatContent": "6 g", + "transFatContent": "0 g", + "carbohydrateContent": "31 g", + "sugarContent": "0.1 g", + "proteinContent": "2.4 g", + "sodiumContent": "114.8 mg", + "fiberContent": "0.1 g", + "cholesterolContent": "56 mg" + }, + "image": "https://beyondfrosting.com/wp-content/uploads/2016/02/Lemon-Cake-Mix-Cookies-5034-2-225x225.jpg", + "keywords": [ + "lemon cake mix cookies", + "lemon cookies from cake mix", + "lemon cookies from box cake mix", + "cookies using lemon cake mix" + ] +} diff --git a/tests/test_data/beyondfrosting.com/beyondfrosting_1.testhtml b/tests/test_data/beyondfrosting.com/beyondfrosting_1.testhtml new file mode 100644 index 000000000..3fa48bc98 --- /dev/null +++ b/tests/test_data/beyondfrosting.com/beyondfrosting_1.testhtml @@ -0,0 +1,2218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Easy Lemon Cake Mix Cookies Recipe | Beyond Frosting + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
Beyond Frosting » Recipes » Lemon Cake Mix Cookies
+
+

Lemon Cake Mix Cookies

+
+
+
+ + +
+ + +
+ + +
+ + + +
+ + + + +
+ + + + + + + +
+

These easy lemon cake mix cookies always brighten up my day! They’re quick to make with only 5 ingredients and come out irresistibly soft-baked in minutes. Every bite is filled with fresh lemon flavor, with the option to add white chocolate chips.

+ + + +

If you love the freshness of lemon desserts like these cake mix cookies, you’ll also love these lemon cupcakes or my super easy lemon sugar cookie bars.

+
+ + + +
Overhead view of assorted lemon cake mix cookies, some filled with white chocolate chips.
+ + + +

Quick and Easy Lemon Cake Mix Cookies

+ + + +

There’s something about the soft, irresistible chewiness and crispy edges that’s totally craveable. Not to mention the flavor choices! A box of cake mix is the best shortcut to sweet, soft-baked cookies of all kinds. These lemon cake mix cookies are one of my latest favorites, and I’ve been making them on repeat this summer! Even my preschooler ate them, I was shocked. The fresh flavors are perfect, and you only need 5 ingredients.

+ + + +

Why We Love Cake Mix Cookies

+ + + +
    +
  • Quick and easy. These cookies start with a box of lemon cake mix, cutting the ingredients list in half. If you’ve never made cookies from a box of cake mix before, it’s a fun, simple shortcut that makes these lemon cookies super beginner-friendly.
  • + + + +
  • Fresh lemon flavor. Many cake mix cookie recipes use only 3 ingredients (cake mix, oil or butter, and eggs), but I like to amp up the zingy lemon flavor in these cookies with fresh lemon zest and lemon extract. It’s an easy addition that makes a big difference!
  • + + + +
  • Make them your own. Stir white chocolate chips into the batter, or drizzle the tops of your lemon cookies with melted white chocolate or a simple lemon glaze.
  • +
+ + + +
Side view of a stack of lemon cookie halves.
+ + + +
+

Ingredient Notes

+ + + +

Here’s a quick overview of the key ingredients along with some notes. Scroll down to the recipe card for a printable list with the full amounts.

+
+ + + +
    +
  • Lemon Cake Mix – I use an 15.25-ounce boxed cake mix from Duncan Hines. You may need to adapt this recipe if you’re using another sized box, see my note below.
  • + + + +
  • Lemon Extract – I like to add a dash of lemon extract for an even more intense lemon flavor in these cookies. Feel free to use pure vanilla extract instead or a squeeze of fresh lemon juice also works.
  • + + + +
  • Lemon Zest – Fresh lemon zest makes all the difference! You’ll need one large lemon. See my tutorial on how to zest a lemon for tips.
  • + + + +
  • Sparkling Sugar Sprinkles – For coating the cookies. It’s a special touch that gives these lemon cookies extra sweetness and crunch. Not to be missed! I recommend the Wilton brand, which you can find at most grocery stores or Walmart. This has a much coarser texture than sanding sugar or granulated sugar.
  • +
+ + +

Can I Use a Different-Sized Cake Mix?

Yes. As mentioned, I based my lemon cake mix cookies recipe on an 15.25-ounce cake mix (Duncan Hines). If you purchase another brand only to find it’s a 13.25-ounce cake mix means a difference of 2 ounces (56g) which is about 7.5 tablespoons. So add 1/2 cup all-purpose flour (8 tablespoons) to the cake mix to get the same results. Otherwise you might find the dough is too soft.

+
+ + +
Ingredients for lemon cake mix cookies with text labels overlaying each ingredient.
+ + + +
+

Oil vs. Butter in Cake Mix Cookies

+ + + +

Most cake mix cookies advertise 3 easy ingredients and an overwhelming majority of the recipes suggest using oil. When developing this recipe, I tested the 3 more common recipes you find online using oil (either 1/3 or ½ cup) and butter (1/2 cup) and here’s what I found:

+ + + +
    +
  • Butter (far left): Made with ½ cup melted butter gave the cookies a better taste and they were thicker all around.
  • + + + +
  • 1/2 Cup Oil (Middle): Made with ½ cup oil, the cookies spread pretty thin and were almost too soft.
  • + + + +
  • 1/3 cup Oil (far right): Made with 1/3 cup oil, the batter was very thick and the outside of the cookies had a weird texture
  • +
+
+ + + +
Lemon cake mix cookies shown side by side, demonstrating the differences in baking times on the texture of the cookies.
From left to right: Made with butter, Made with 1/2 cup oil, Made with 1/3 cup oil
+ + + +
+

How to Make Lemon Cookies From Cake Mix

+ + + +

While I always have a place in my heart for my from-scratch lemon cookies, nothing beats the convenience of a box of cake mix as a shortcut! I have a whole guide dedicated to baking with cake mix that you can check out.

+ + + +

Meanwhile, follow the short steps below to make these soft-baked lemon cookies. You’ll find printable instructions in the recipe card after the post. 

+
+ + + +
    +
  1. Combine the ingredients. To make the cookie dough, simply add all of your ingredients to a bowl, and mix. 
  2. + + + +
  3. Shape the cookies. Next, I like to use a cookie scoop to portion out even-sized balls of dough. Roll the dough balls in sanding sugar before placing them onto a lined baking sheet. You may need to reshape before baking.
  4. + + + +
  5. Bake. Bake these cake mix cookies at 350ºF for 11-13 minutes, depending on how chewy you prefer your cookies (see below). 
  6. +
+ + + + + + + +

How to Tell When These Cookies Are Baked

+ + + +

In general, I like my cookies underbaked, but not gooey. I usually pull these lemon cake mix cookies from the oven at the 12-minute mark. As you can see in the photo, at this point they’re still soft in the centers, but not raw. If I stick a toothpick into the center of a cookie, it comes out clean.

+ + + +

At 11 minutes, these cookies were slightly underdone, and they stayed a bit raw in the middle. At 13 minutes, they were baked through, but with a drier crumb. Start checking your cookies after the minimum recommended baking time and go from there.

+ + +

Toppings and Add Ins

+
    +
  • Add chocolate chips. Optional, but a handful of white chocolate chips in the batter makes these lemony cookies that much more indulgent. I love the way the chips melt to create sweet little gooey pockets throughout the cookie! For a pretty finish, gently press a few chocolate chips into the tops of the cookies right as they come out of the oven.
  • +
  • Add a white chocolate drizzle. Once upon a time, I finished these lemon cookies with a drizzle of white chocolate. So good! If that’s your vibe, you can melt chocolate chips in the microwave, or make a batch of white chocolate ganache to drizzle over the cooled cookies.
  • +
  • Buttercream. If you like a frosted cookie, opt for a simple vanilla buttercream or cream cheese frosting. Top with some added zest for more lemon flavor.
  • +
+

+
+ + +
Close up of lemon cake mix cookies on a white surface.
+ + + +

How to Store

+ + + +
    +
  • To store. These lemon cake mix cookies store well at room temperature for 3-4 days. Be sure to keep them in an airtight container.
  • + + + +
  • Freeze. You can also freeze your cookies for up to 1 month. Defrost them on the countertop before serving.
  • +
+ + +Print
+ +clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon +
+
+ Overhead close up view of assorted lemon cake mix cookies, some filled with white chocolate chips.
+
+

Lemon Cake Mix Cookies

+
+
+
+ 5 Stars 4 Stars 3 Stars 2 Stars 1 Star + 5 from 1 review +
+
+
+
+
    +
  • + Author: Julianne Dell
  • +
  • + + Prep Time: 10 minutes
  • +
  • + + Cook Time: 12 minutes
  • +
  • + + Total Time: 22 minutes
  • +
  • + + Yield: 11-12 cookies
  • +
  • + + Category: Cookies
  • +
  • + + Method: Oven
  • +
  • + + Cuisine: American
  • +
+
+ +
+ +
+ + + +
+
+
+ + +
+ +
+
+ +
+

Description

+
+

These easy lemon cake mix cookies are quick to make with 5 ingredients! So soft and chewy, they’re infused with fresh lemon flavor and rolled in sugar for crunch. Add in white chocolate chips for a delicious sweet-tart treat.

+
+
+ +
+ +
+
+
+

Ingredients

+
+
+
+
+
+
    +
  • 1 box (15.25oz) Duncan Hines Lemon Cake Mix
  • +
  • ½ cup (113g) Unsalted butter, melted
  • +
  • 2 Large eggs
  • +
  • 1 teaspoon Pure Lemon extract (or fresh lemon juice)
  • +
  • Zest from 1 large lemon
  • +
  • Sparkling Sanding Sugar for coating (1/3-1/2 cup)
  • +
+
+
+
+ + +
+
+
+ +
+ +
+
+

Instructions

+
+
+
    +
  1. Preheat the oven to 350°F. Line a baking sheet with parchment paper or a silicone baking sheet
  2. +
  3. In a large mixing bowl, combine all the ingredients (except the sanding sugar) and mix until well combined. The dough will be thick.
  4. +
  5. Use a large cookie scoop to portion out the dough. Roll each ball of dough in the sanding sugar then place the dough about 2 inches apart on the prepared baking sheet.
  6. +
  7. Bake for 11-13 minutes. The center of the cookies should be slightly under-baked but not too gooey. Use a toothpick inserted into the center of a cookie to check for doneness.
  8. +
+
+
+ + +
+ +
+

Equipment

+ + + + +
+ +
+ +
+

Notes

+
+
    +
  • This is based on a Duncan Hines Cake Mix which is 15.25 oz. Other brands that may be 13.25o size cake mix, add 1/2 cup all-purpose flour to make up the difference. 
  • +
  • Optional add-in: ¾ cups white chocolate chips, save a few to put on top right when they come out of the oven.
  • +
  • Don’t skip the sanding sugar! This gives the cookies a nice crunch and a little bit of sweetness.
  • +
+

Storing:

+

+
    +
  • +
      +
    • To store. These lemon cake mix cookies store well at room temperature for 3-4 days. Be sure to keep them in an airtight container.
    • +
    +
  • +
+

+

+
    +
  • +
      +
    • Freeze. You can also freeze your cookies for up to 1 month. Defrost them on the countertop before serving.
    • +
    +
  • +
+

+

+
+
+ + + +
+

Nutrition

+
    +
  • Serving Size: 1 Cookie
  • +
  • Calories: 242
  • +
  • Sugar: 0.1 g
  • +
  • Sodium: 114.8 mg
  • +
  • Fat: 12.5 g
  • +
  • Carbohydrates: 31 g
  • +
  • Fiber: 0.1 g
  • +
  • Protein: 2.4 g
  • +
  • Cholesterol: 56 mg
  • +
+
+ + + +
+ + +

Filed Under:

+ + +

+ + + +
+
+ + +
+ +
+ + +
+

Review and rate this post!

I love hearing from you! Submit your question or review here. Your email address will not be published. Required fields are marked*.

+ Recipe rating + 5 Stars 4 Stars 3 Stars 2 Stars 1 Star
+

+ +
+ +

+ +

+

+ 2 thoughts on “Lemon Cake Mix Cookies”

+ +
    +
  1. + +
    + +
    +

    These are amazing, no other way to describe them. Very quick and easy. Did half the batch rolling them in sugar and the other half with a lemon glaze. Everyone that tried them loved both versions. The entire batch was eaten within a hour or two of pulling them out of the oven. My go to lemon cookie recipe.

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +
    + Reply
    +
    +
    + +
      +
    1. + + + +
    2. +
    +
  2. +
+ + + + + + +
+ +
+ + +
+ + +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/beyondfrosting.com/beyondfrosting_2.json b/tests/test_data/beyondfrosting.com/beyondfrosting_2.json new file mode 100644 index 000000000..fcf334671 --- /dev/null +++ b/tests/test_data/beyondfrosting.com/beyondfrosting_2.json @@ -0,0 +1,96 @@ +{ + "author": "Julianne Dell", + "canonical_url": "https://beyondfrosting.com/no-bake-strawberry-cheesecake/", + "site_name": "Beyond Frosting", + "host": "beyondfrosting.com", + "language": "en-US", + "title": "No-Bake Strawberry Cheesecake", + "ingredients": [ + "2 cups (224g) graham cracker crumbs (about 2 sleeves)", + "6 tablespoons (84g) unsalted butter, melted", + "1 lb (16oz) fresh strawberries, washed and hulled", + "4 ounces (113g) white chocolate bar, chopped and melted", + "1 cup (236ml) heavy whipping cream, cold", + "½ cup (65g) powdered sugar", + "16 ounces (452) full-fat cream cheese, at room temperature", + "½ cup (95g) granulated sugar", + "1 teaspoon (5ml) pure vanilla extract", + "¾ cup (177ml) heavy whipping cream, cold", + "½ cup (65g) powdered sugar", + "Additional fresh strawberries for garnish" + ], + "ingredient_groups": [ + { + "ingredients": [ + "2 cups (224g) graham cracker crumbs (about 2 sleeves)", + "6 tablespoons (84g) unsalted butter, melted" + ], + "purpose": "For the Crust:" + }, + { + "ingredients": [ + "1 lb (16oz) fresh strawberries, washed and hulled", + "4 ounces (113g) white chocolate bar, chopped and melted", + "1 cup (236ml) heavy whipping cream, cold", + "½ cup (65g) powdered sugar", + "16 ounces (452) full-fat cream cheese, at room temperature", + "½ cup (95g) granulated sugar", + "1 teaspoon (5ml) pure vanilla extract" + ], + "purpose": "For the Cheesecake Filling:" + }, + { + "ingredients": [ + "¾ cup (177ml) heavy whipping cream, cold", + "½ cup (65g) powdered sugar", + "Additional fresh strawberries for garnish" + ], + "purpose": "For the Topping:" + } + ], + "instructions_list": [ + "For the Crust:", + "Prepare a 9-inch springform pan by lightly greasing the edges of the pan with cooking spray, and then wiping gently with a paper towel.", + "Grind the graham crackers into a fine crumb using a food processor or blender. Combine the melted butter and graham cracker crumbs, stirring until well combined.", + "Pour the crumbs into the springform pan and press firmly into the bottom and up on the sides of the pan to create the crust. Refrigerate the crust while preparing the filling.", + "For the Filling:", + "Wash and hull the strawberries. Puree them in a food processor or blender until smooth, yielding about 1¾ cups of puree.", + "Transfer the puree to a medium-sized saucepan. Heat over medium to medium-low heat, stirring as needed to prevent burning and sticking, until the mixture reduces to about ½ cup. This can take up to 30 minutes. Allow the mixture to cool completely. Refrigerate to speed up the cooling process.", + "Chop the white chocolate bar into smaller pieces. Microwave at 50% power in 30-second increments, stirring each time until the chocolate is melted. Stir until completely smooth. Set aside to cool.", + "Prepare the whipped cream. Chill the mixing bowl and beater blade for 5-10 minutes in the freezer or refrigerator. Beat the heavy cream in the chilled bowl and using the whisk attachment and beat at a high speed until the cream thickens to soft peaks. Add the powdered sugar and continue beating on high speed until stiff peaks form. If needed, transfer to a separate bowl and set aside.", + "Next beat the cream cheese until it’s completely smooth, scraping down the sides of the bowl as needed. Add the granulated sugar and vanilla extract and continue beating until smooth. Then add the melted chocolate and strawberry puree, beating until combined.", + "Finally, slowly fold in the whipped cream until it’s completely smooth. Pour the filling into the prepared cooled crust, spreading evenly. Refrigerate for 3-4 hours until it’s firm.", + "For the Topping:", + "Prepare another batch of whipped cream following the instructions above. Use a large piping bag to pipe the borders of the cheesecake. Garnish with fresh fruit." + ], + "category": "Cheesecake", + "yields": "8 servings", + "description": "This no-bake strawberry cheesecake is the perfect summer dessert, with a cool and creamy filling made with fresh strawberry purée set in a crunchy graham cracker crust.", + "total_time": 300, + "prep_time": 300, + "cuisine": "American", + "cooking_method": "No-Bake", + "equipment": [ + "9-inch Springform pan", + "Angled Spatula" + ], + "nutrients": { + "servingSize": "1 Slice", + "calories": "610 calories", + "fatContent": "42.6 g", + "saturatedFatContent": "25.3 g", + "transFatContent": "0.5 g", + "carbohydrateContent": "53.3 g", + "sugarContent": "38.7 g", + "proteinContent": "6.3 g", + "sodiumContent": "306.5 mg", + "fiberContent": "2.2 g", + "cholesterolContent": "113.6 mg" + }, + "image": "https://beyondfrosting.com/wp-content/uploads/2024/08/No-Bake-Strawberry-Cheesecake-6120-2-225x225.jpg", + "keywords": [ + "no-bake strawberry cheesecake", + "no-bake cheesecake", + "strawberry cheesecake" + ] +} diff --git a/tests/test_data/beyondfrosting.com/beyondfrosting_2.testhtml b/tests/test_data/beyondfrosting.com/beyondfrosting_2.testhtml new file mode 100644 index 000000000..9f4082083 --- /dev/null +++ b/tests/test_data/beyondfrosting.com/beyondfrosting_2.testhtml @@ -0,0 +1,1983 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No-Bake Strawberry Cheesecake | Beyond Frosting + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
Beyond Frosting » Recipes » Desserts » Cheesecakes » No-Bake Cheesecake » No-Bake Strawberry Cheesecake
+
+

No-Bake Strawberry Cheesecake

+
+
+
+ + +
+ + +
+ + +
+ + + +
+ + + + +
+ + + + + + + +

This no-bake strawberry cheesecake is the perfect dessert for summer! It has a light and creamy filling packed with fresh puréed strawberries in a crunchy graham cracker crust. It’s easy to make, and you can give your oven the day off! 

+ + + +
A slice of no-bake strawberry cheesecake on a pink glass plate, next to a fork and a fresh strawberry.
+ + + +
+

Easy No-Bake Strawberry Cheesecake

+ + + +

Summer is my favorite time of the year for no-bake desserts (surely I can’t be alone?). Aside from the obvious perk of not heating up the kitchen with a hot oven, recipes like this cool and creamy no-bake strawberry cheesecake are refreshing and delicious. I didn’t think any strawberry dessert could rival my Strawberry Delight, but I am a huge fan of cheesecake, so rest assured this one gets the seal of approval from me, even my toddler devoured this one.

+ + + +

Why I Love This Cheesecake Recipe

+
+ + + +
    +
  • No oven. Summer desserts don’t get better than a creamy cheesecake that I can make without turning on the oven. No oven also means no water bath, so I get to enjoy all the richness of homemade cheesecake without the fuss.
  • + + + +
  • Fresh strawberry flavor. An easy strawberry reduction gives flavor without sacrificing texture. It means that it packs every bite full of strawberry goodness without worrying about the filling setting up properly.
  • + + + +
  • Thick, creamy slices. Like my classic no-bake cheesecake, I make this no-bake strawberry cheesecake with melted white chocolate, which doesn’t impact the taste but instead helps to thicken the filling for an overall better texture. 
  • +
+ + + +
A slice of no-bake strawberry cheesecake on a cake server, with the rest of the cheesecake in the background.
+ + + +

Ingredient Notes

+ + + +

This easy strawberry cheesecake needs just a handful of ingredients, and I’ve included notes on the key ones below. Scroll to the recipe card for a printable ingredients list with recipe amounts.

+ + + +
    +
  • Crust – I use a simple homemade graham cracker crust made from crushed graham crackers and melted butter. Feel free to save time with a store-bought crust if you’d like, or even Nilla Wafer or Golden Oreos.
  • + + + +
  • Strawberries – These can be fresh or frozen. Fresh berries will need to be washed and hulled beforehand. If you’re using frozen strawberries, be sure to thaw them first. Strawberries must be fully ripe for the best flavor.
  • + + + +
  • White Chocolate – Chopped and melted. I recommend using white chocolate bars, such as Lindt or Ghirardelli. These will melt down much smoother than chocolate chips. If you only have chocolate chips, I have a tutorial on how to melt chocolate chips with tips.
  • + + + +
  • Heavy Whipping Cream – Make sure it’s cold from the fridge. For this recipe, homemade whipped cream is used in both the filling and for garnishing the cheesecake. For time-saving purposes, you can use store-bought Cool Whip instead.
  • + + + +
  • Cream Cheese – You’ll want to use bricks of full-fat cream cheese for the creamiest no-bake cheesecake. Bring the cream cheese to room temperature before you start.
  • +
+ + + +
Ingredients for No-Bake Strawberry Cheesecake laid out on a table on bowls and plates with text overlay
+ + + +

How to Make a No-Bake Strawberry Cheesecake

+ + + +

Follow the brief steps here to make the perfect no-bake strawberry cheesecake. Scroll down to the recipe card after the post for printable recipe instructions.

+ + + +
    +
  • Make the strawberry purée. Next, purée rinsed and hulled strawberries in a food processor. Afterward, you’ll reduce the purée in a saucepan over medium heat until you’re left with about ½ cup. It should be nice and thick. It should be fully cooled before using.
  • + + + +
  • Prepare the crust. First, combine graham cracker crumbs with melted butter. Press the crumb mixture firmly into the bottom and up the sides of a greased springform pan. If needed, refer to my tutorial on how to make a no-bake crust in a springform pan
  • +
+ + + + + + + +
    +
  • Melt the chocolate. Melt chopped white chocolate in the microwave in increments, stirring in between until that’s nice and smooth. Both the purée and melted chocolate will need to cool before you make your cheesecake filling.
  • + + + +
  • Prepare the whipped cream. Meanwhile, whip heavy cream in a chilled bowl until soft peaks start to form. Add powdered sugar and whip again, this time until you get stiff peaks.
  • +
+ + + + + + + +
    +
  • Assemble the cheesecake. Now, you’ll beat cream cheese with sugar and vanilla, followed by the melted white chocolate and strawberry purée. Lastly, fold in the whipped cream. Spread the cheesecake filling into your prepared crust.
  • +
+ + +

Crust Filling Tip!

Wanna know how I get that perfect edge?

+
    +
  • Add just enough of the filling to cover the bottom of the cheesecake and use a spoon or my favorite is an angled spatula, and spread the filling to the edges, getting in all the nooks and crannies.
  • +
  • Then add more filling just until it reaches the top of the crust, and very carefully spread the filling to the edges of the pan. Add any remaining fill on top and smooth you.
  • +
+
+ + +
Overhead view of no-bake strawberry cheesecake in a springform pan.
Fill the pan and chill.
+ + + +
    +
  • Chill. Pop the strawberry cheesecake into the fridge to chill for 3-4 hours.
  • + + + +
  • Add the topping. Before serving, whip up a fresh batch of whipped cream and pipe or dollop the topping over the cheesecake. Garnish with fresh strawberries and enjoy!
  • +
+ + + +
No-bake strawberry cheesecake topped with swirls of whipped cream and fresh strawberries, with a large slice missing.
+ + +

Recipe Tips

+
    +
  • Line the bottom of the pan. This is only necessary if you’d like to fully remove the cheesecake from your springform pan. Place a large piece of parchment over the bottom edges of the pan and close the pan around the edge. The paper will hang out the sides. 
  • +
  • Patience is key. Reducing the strawberries gives flavor and stability to the cheesecake. I suggest reducing until it’s about ½ cup of puree, which can take up to 30 minutes. Keep the heat at medium/medium-low and stir often so that the purée doesn’t burn or stick. 
  • +
  • Cool the strawberries faster. Afterward, I’ll place the purée into the fridge to speed up the cooling process.
    +
  • +
  • Whip the cream to stiff peaks. The key to a stable filling is to properly prepare the whipped cream until it reaches stiff peaks. If the whipped cream is wilted or runny before adding into the cheesecake it will cause issues with the cheesecake fully setting.
  • +
+

+
+ + + + +
Head-on view of a slice of no-bake strawberry cheesecake on a pink glass plate, with a forkful missing from the end, next to a fork and a fresh strawberry.
+ + + +

How to Store No-Bake Cheesecake

+ + + +
    +
  • Storing. Keep the no-bake strawberry cheesecake in the fridge and enjoy within 2-3 days. I usually wrap the springform collar back around the pan and cover it with plastic wrap, otherwise, you can keep slices in an airtight container.
  • + + + +
  • Freeze. After chilling the cheesecake in the fridge, wrap the whole pan in a double layer of plastic wrap and freeze it for up to 1 month. Leave off any toppings until the cheesecake is thawed for serving.
  • +
+ + + +

More No-Bake Desserts

+ + + + + + +Print
+ +clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon +
+
+ A slice of no-bake strawberry cheesecake on a cake server, with the rest of the cheesecake in the background.
+
+

No-Bake Strawberry Cheesecake

+
+
+
+ 5 Stars 4 Stars 3 Stars 2 Stars 1 Star + No reviews +
+
+
+
+
    +
  • + Author: Julianne Dell
  • +
  • + + Prep Time: 60 minutes
  • +
  • + + Chilling Time: 4 hours
  • +
  • + + Total Time: 5 hours
  • +
  • + + Yield: 8-10 servings
  • +
  • + + Category: Cheesecake
  • +
  • + + Method: No-Bake
  • +
  • + + Cuisine: American
  • +
+
+ +
+ +
+ + + +
+
+
+ + +
+ +
+
+ +
+

Description

+
+

This no-bake strawberry cheesecake is the perfect summer dessert, with a cool and creamy filling made with fresh strawberry purée set in a crunchy graham cracker crust.

+
+
+ +
+ +
+
+
+

Ingredients

+
+
+
+
+
+

For the Crust:

+
    +
  • 2 cups (224g) graham cracker crumbs (about 2 sleeves)
  • +
  • 6 tablespoons (84g) unsalted butter, melted
  • +
+

For the Cheesecake Filling:

+
    +
  • 1 lb (16oz) fresh strawberries, washed and hulled
  • +
  • 4 ounces (113g) white chocolate bar, chopped and melted
  • +
  • 1 cup (236ml) heavy whipping cream, cold
  • +
  • ½ cup (65g) powdered sugar
  • +
  • 16 ounces (452) full-fat cream cheese, at room temperature
  • +
  • ½ cup (95g) granulated sugar
  • +
  • 1 teaspoon (5ml) pure vanilla extract
  • +
+

For the Topping:

+
    +
  • ¾ cup (177ml) heavy whipping cream, cold
  • +
  • ½ cup (65g) powdered sugar
  • +
  • Additional fresh strawberries for garnish
  • +
+
+
+
+ + +
+
+
+ +
+ +
+
+

Instructions

+
+
+

For the Crust: 

+
    +
  1. Prepare a 9-inch springform pan by lightly greasing the edges of the pan with cooking spray, and then wiping gently with a paper towel.
  2. +
  3. Grind the graham crackers into a fine crumb using a food processor or blender. Combine the melted butter and graham cracker crumbs, stirring until well combined.
  4. +
  5. Pour the crumbs into the springform pan and press firmly into the bottom and up on the sides of the pan to create the crust. Refrigerate the crust while preparing the filling.
  6. +
+

For the Filling:

+
    +
  1. Wash and hull the strawberries. Puree them in a food processor or blender until smooth, yielding about 1¾ cups of puree.
  2. +
  3. Transfer the puree to a medium-sized saucepan. Heat over medium to medium-low heat, stirring as needed to prevent burning and sticking, until the mixture reduces to about ½ cup. This can take up to 30 minutes. Allow the mixture to cool completely. Refrigerate to speed up the cooling process.
  4. +
  5. Chop the white chocolate bar into smaller pieces. Microwave at 50% power in 30-second increments, stirring each time until the chocolate is melted. Stir until completely smooth. Set aside to cool.
  6. +
  7. Prepare the whipped cream. Chill the mixing bowl and beater blade for 5-10 minutes in the freezer or refrigerator. Beat the heavy cream in the chilled bowl and using the whisk attachment and beat at a high speed until the cream thickens to soft peaks. Add the powdered sugar and continue beating on high speed until stiff peaks form. If needed, transfer to a separate bowl and set aside.
  8. +
  9. Next beat the cream cheese until it’s completely smooth, scraping down the sides of the bowl as needed. Add the granulated sugar and vanilla extract and continue beating until smooth. Then add the melted chocolate and strawberry puree, beating until combined.
  10. +
  11. Finally, slowly fold in the whipped cream until it’s completely smooth. Pour the filling into the prepared cooled crust, spreading evenly. Refrigerate for 3-4 hours until it’s firm.
  12. +
+

For the Topping: 

+
    +
  1. Prepare another batch of whipped cream following the instructions above. Use a large piping bag to pipe the borders of the cheesecake. Garnish with fresh fruit.
  2. +
+
+
+ + +
+ +
+

Equipment

+ + + +
+ +
+ +
+

Notes

+
+

If you’d like to remove the cheesecake from the pan, full-line the bottom of the pan with parchment paper, hanging it over the edges of the circle, and then close the edges of the pan around it.

+

Ingredient notes and Substitutions 

+
    +
  • Frozen strawberries can also be used but should be thawed before blending.
  • +
  • The strawberry puree can be made up to 2 days in advance. 
  • +
  • Cool Whip: If you’d prefer to use Cool Whip, simply swap out the heavy cream and powdered sugar in the filling with one 8oz container of thawed Cool Whip. 
  • +
  • White Chocolate: I’d recommend using a brand like Ghirardelli or Lindt white chocolate for the filling. In a pinch, white chocolate chips can be used.
  • +
  • Crust. A store-bought crust can be used in place of homemade. Alternatively Nilla Wafer or Golden Oreos would be another good option. 
  • +
+

Storing

+
    +
  • Once prepared: Must stay refrigerated, best within 2-3 days of preparation. You can wrap the springform collar around the pan and then tightly cover it with plastic wrap or store slices in an airtight container.
  • +
  • Freezing: Chill completely, and then tightly wrap the pan twice with plastic wrap. Save the garnishes to add once it’s thawed. Freeze for up to one month.
  • +
+
+
+ + + +
+

Nutrition

+
    +
  • Serving Size: 1 Slice
  • +
  • Calories: 610
  • +
  • Sugar: 38.7 g
  • +
  • Sodium: 306.5 mg
  • +
  • Fat: 42.6 g
  • +
  • Carbohydrates: 53.3 g
  • +
  • Fiber: 2.2 g
  • +
  • Protein: 6.3 g
  • +
  • Cholesterol: 113.6 mg
  • +
+
+ + + +
+ + +

Filed Under:

+ + +
+
+ + +
+ +
+ + +
+

Review and rate this post!

I love hearing from you! Submit your question or review here. Your email address will not be published. Required fields are marked*.

+ Recipe rating + 5 Stars 4 Stars 3 Stars 2 Stars 1 Star
+

+ +
+ +

+ +

+ + + + +
+ +
+ + +
+ + +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/bitsofcarey.com/bitsofcarey_1.json b/tests/test_data/bitsofcarey.com/bitsofcarey_1.json new file mode 100644 index 000000000..1f034bc3f --- /dev/null +++ b/tests/test_data/bitsofcarey.com/bitsofcarey_1.json @@ -0,0 +1,64 @@ +{ + "author": "Carey Erasmus", + "canonical_url": "https://bitsofcarey.com/asian-style-sweetcorn-fritters/", + "site_name": "Bits of Carey", + "host": "bitsofcarey.com", + "language": "en-ZA", + "title": "Asian Style Sweetcorn Fritters", + "ingredients": [ + "2 cups (260 g) sweetcorn (canned (drained) or frozen (thawed))", + "2 spring onions (finely chopped)", + "½ cup fresh coriander (chopped)", + "¼ cup mint leaves (chopped)", + "1 ½ tsp sambal oelek ((Garlic chilli paste))", + "1 lime (zest of)", + "salt and pepper (to taste)", + "½ cup (65 g) all purpose flour", + "¼ cup (30 g) corn flour", + "1 tsp baking powder", + "125 ml coconut milk (or milk of your choice)", + "1 large egg (beaten)", + "½ tsp fish sauce (optional)", + "olive oil (to grease pan)", + "sesame oil (a few drops)" + ], + "instructions_list": [ + "Mix all the ingredients together until evenly combined. It should resemble a chunky thick batter.", + "Lightly grease non stick pan with olive oil and some sesame oil for flavour.", + "Fry 1 Tbsp portions over moderate heat until golden brown on both sides and the centre in cooked.", + "1 Tbsp portions make 15 fritters, and 2 Tbsp portions make +- 7 large fritters.", + "Place on on kitchen paper towel to absorb excess oil.", + "Serve with a fragrant homemade soy dipping sauce, sweet chilli sauce, sriracha mayo or hot honey.", + "Garnish with extra herbs.", + "Eat immediately!" + ], + "category": "Appetizer,Side Dish,Snack", + "yields": "15 servings", + "total_time": 30, + "cook_time": 15, + "prep_time": 15, + "cuisine": "Asian", + "equipment": [ + "1 non stick frying pan" + ], + "nutrients": { + "servingSize": "1 serving", + "calories": "97 kcal", + "fatContent": "3 g", + "saturatedFatContent": "2 g", + "unsaturatedFatContent": "0.6 g", + "transFatContent": "0.001 g", + "carbohydrateContent": "17 g", + "sugarContent": "2 g", + "proteinContent": "3 g", + "sodiumContent": "51 mg", + "fiberContent": "1 g", + "cholesterolContent": "11 mg" + }, + "image": "https://bitsofcarey.com/wp-content/uploads/2022/07/IMG_1412.jpg", + "keywords": [ + "Asian", + "Fritters", + "Sweetcorn" + ] +} diff --git a/tests/test_data/bitsofcarey.com/bitsofcarey_1.testhtml b/tests/test_data/bitsofcarey.com/bitsofcarey_1.testhtml new file mode 100644 index 000000000..b1d158bf1 --- /dev/null +++ b/tests/test_data/bitsofcarey.com/bitsofcarey_1.testhtml @@ -0,0 +1,1303 @@ + + + + + + + + + + + + Asian Style Sweetcorn Fritters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ +
+
+
+
+
+
+

Asian Style Sweetcorn Fritters

+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+

Asian Style Sweetcorn Fritters
+Asian Style Sweetcorn Fritters, made with just a few pantry staples and some fresh herbs. So delicious and utterly moreish.

+

Served with a mouth-watering dipping sauce mixture of soy sauce, a drop or two of fish sauce, fresh lime juice, sambal oelek, fresh ginger, coriander & mint, and a bit of honey. The sauce is made to taste, so no measurements here. Convenient sweet chilli sauce, hot honey, sriracha mayo are also great dipping sauce options.

+

Want to see how I made them? Check this Instagram Reel.

+

Asian Style Sweet Corn Fritters

+
+
Asian Style Sweetcorn Fritters
+
+

Asian Style Sweetcorn Fritters

+
+ +
+ +
+ +
+ +
+
+
Prep Time 15 minutes
Cook Time 15 minutes
Total Time 30 minutes
+
+
+
+
+
Course Appetizer, Side Dish, Snack
Cuisine Asian
+
+
+
+
Servings 15 fritters
Calories 97 kcal
+
+
+

Equipment

  • 1 non stick frying pan
+

Ingredients
  

  • 2 cups (260 g) sweetcorn canned (drained) or frozen (thawed)
  • 2 spring onions finely chopped
  • ½ cup fresh coriander chopped
  • ¼ cup mint leaves chopped
  • 1 ½ tsp sambal oelek (Garlic chilli paste)
  • 1 lime zest of
  • salt and pepper to taste
  • ½ cup (65 g) all purpose flour
  • ¼ cup (30 g) corn flour
  • 1 tsp baking powder
  • 125 ml coconut milk or milk of your choice
  • 1 large egg beaten
  • ½ tsp fish sauce optional
  • olive oil to grease pan
  • sesame oil a few drops
+

Instructions
 

  • Mix all the ingredients together until evenly combined. It should resemble a chunky thick batter.
  • Lightly grease non stick pan with olive oil and some sesame oil for flavour.
  • Fry 1 Tbsp portions over moderate heat until golden brown on both sides and the centre in cooked.
  • 1 Tbsp portions make 15 fritters, and 2 Tbsp portions make +- 7 large fritters.
  • Place on on kitchen paper towel to absorb excess oil.
  • Serve with a fragrant homemade soy dipping sauce, sweet chilli sauce, sriracha mayo or hot honey.
  • Garnish with extra herbs.
  • Eat immediately!
+ + +

Nutrition

Calories: 97kcalCarbohydrates: 17gProtein: 3gFat: 3gSaturated Fat: 2gPolyunsaturated Fat: 0.3gMonounsaturated Fat: 0.3gTrans Fat: 0.001gCholesterol: 11mgSodium: 51mgPotassium: 116mgFiber: 1gSugar: 2gVitamin A: 185IUVitamin C: 4mgCalcium: 26mgIron: 1mg
+
+
+
Keyword Asian, Fritters, Sweetcorn
+
+
Tried this recipe?Let us know how it was!
+

For more Asian inspired recipes:

+

Try these:
+Sticky Cauliflower Wings
+Crispy Korean Chicken Bao
+Thai Roast Chicken

+
+ + + + +
+ + + + + +
+

Leave a Comment

+
+
+
+ +
+ +
+ Recipe Rating +




+
+
+

+ +

+
+ +
+
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_data/bitsofcarey.com/bitsofcarey_2.json b/tests/test_data/bitsofcarey.com/bitsofcarey_2.json new file mode 100644 index 000000000..766900b7d --- /dev/null +++ b/tests/test_data/bitsofcarey.com/bitsofcarey_2.json @@ -0,0 +1,89 @@ +{ + "author": "Carey Erasmus", + "canonical_url": "https://bitsofcarey.com/parmesan-polenta-almond-crumbed-chicken/", + "site_name": "Bits of Carey", + "host": "bitsofcarey.com", + "language": "en-ZA", + "title": "Parmesan, Polenta & Almond Crumbed Chicken", + "ingredients": [ + "4 chicken breast fillets (free range)", + "½ tsp coarse salt (ground)", + "½ tsp coarse black pepper (ground)", + "1 egg (large)", + "45 ml milk", + "¾ c (180 ml) yellow cornmeal ((fine polenta))", + "¾ c (180 ml) parmesan (finely grated)", + "½ c (125 ml) almond meal ((finely ground almonds))", + "½ tsp (2.5 ml) coarse salt (ground)", + "½ tsp (2.5 ml) coarse black pepper (ground)", + "1 tsp (5 ml) dried rosemary", + "½ tsp (2.5 ml) dried thyme", + "1 lemon (zested and cut into wedges)", + "olive oil (for drizzling)" + ], + "ingredient_groups": [ + { + "ingredients": [ + "4 chicken breast fillets (free range)", + "½ tsp coarse salt (ground)", + "½ tsp coarse black pepper (ground)", + "1 egg (large)", + "45 ml milk" + ], + "purpose": null + }, + { + "ingredients": [ + "¾ c (180 ml) yellow cornmeal ((fine polenta))", + "¾ c (180 ml) parmesan (finely grated)", + "½ c (125 ml) almond meal ((finely ground almonds))", + "½ tsp (2.5 ml) coarse salt (ground)", + "½ tsp (2.5 ml) coarse black pepper (ground)", + "1 tsp (5 ml) dried rosemary", + "½ tsp (2.5 ml) dried thyme", + "1 lemon (zested and cut into wedges)", + "olive oil (for drizzling)" + ], + "purpose": "Crumbing:" + } + ], + "instructions_list": [ + "Slice the chicken fillets in half to make thinner fillets. By doing it this way, you get 8 pieces of crispy, tender chicken.", + "Season with salt and pepper.", + "Beat the egg and milk together.", + "In a large bowl, mix corn meal, parmesan almond meal, seasoning and lemon zest together until evenly combined.", + "Lightly coat each fillet with the crumb mixture. Then dip into egg mixture followed by a generous coating of crumb mixture. Set aside on a tray, cover and allow to stand for 10 minutes. This can be prepared beforehand and chilled.", + "Airfryer: Place crumbed chicken in the airfryer tray. Do not overcrowd. Drizzle with olive oil and use Airfry setting for 12 minutes or until golden and crispy. Oven Bake: Place on a lined baking tray. Drizzle generously with olive oil and bake for at 200°C for +- 20 - 25 minutes or until golden and crispy.", + "Serve immediately with lemon wedges, salad and sauce of your choice." + ], + "category": "Main Course", + "yields": "4 servings", + "description": "A delicious gluten free alternative seasoned with lemon zest and dried herbs.", + "total_time": 27, + "cook_time": 12, + "prep_time": 15, + "equipment": [ + "airfryer (note: optional)" + ], + "nutrients": { + "servingSize": "1 serving", + "calories": "679 kcal", + "fatContent": "33 g", + "saturatedFatContent": "10 g", + "unsaturatedFatContent": "8 g", + "transFatContent": "0.02 g", + "carbohydrateContent": "45 g", + "sugarContent": "3 g", + "proteinContent": "53 g", + "sodiumContent": "1395 mg", + "fiberContent": "9 g", + "cholesterolContent": "145 mg" + }, + "image": "https://bitsofcarey.com/wp-content/uploads/2022/08/IMG_4215.jpg", + "keywords": [ + "chicken", + "crispy chicken", + "crumbed chicken", + "Gluten Free" + ] +} diff --git a/tests/test_data/bitsofcarey.com/bitsofcarey_2.testhtml b/tests/test_data/bitsofcarey.com/bitsofcarey_2.testhtml new file mode 100644 index 000000000..b96017bc6 --- /dev/null +++ b/tests/test_data/bitsofcarey.com/bitsofcarey_2.testhtml @@ -0,0 +1,1299 @@ + + + + + + + + + + + Parmesan, Polenta & Almond Crumbed Chicken + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ +
+
+
+
+
+
+

Parmesan, Polenta & Almond Crumbed Chicken

+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+

Parmesan, Polenta & Almond Crumbed Chicken

+

Parmesan, Polenta & Almond Crumbed Chicken

+

I replaced popular panko breadcrumbs (gluten and wheat) with fine yellow corn meal/polenta, grated parmesan cheese and almond meal. Perfectly seasoned with lemon zest, salt, pepper and dried herbs. Our new ‘go to’ for crumbed chicken night, that’s for sure. It’s utterly delicious and crispy too! Also, these were cooked in my trusty air-fryer for 12 minutes with just a drizzle of olive oil. Amazing right? Great for chicken nuggets too. Just saying.

+

Super yummy served with a quick parsley, garlic, caper, lemon butter sauce and extra lemon on the side. Equally delish with a garlic aioli, cheese or mushroom sauce. The options are endless. Here I chose to serve this life changing crumbed chicken with a simple salad of baby spinach, rocket, tomatoes and, you guessed it, parmesan shavings. The Best Caesar Salad will be a winner with this chicken too.

+

It’s a lovely quiet summer lull at the moment, and I’m grateful for the free time to play around in my kitchen and share fuss free food that I enjoy making (and eating) at home. To see what’s cooking, remember to follow me on Instagram if you feel inclined.

+

Enjoy this recipe 😉

+

Parmesan, Polenta & Almond Crumbed Chicken

+
+
Parmesan, Polenta & Almond Crumbed Chicken
+
+

Parmesan, Polenta & Almond Crumbed Chicken

+
+ +
+
A delicious gluten free alternative seasoned with lemon zest and dried herbs.
+
+ +
+ +
+
+
Prep Time 15 minutes
Cook Time 12 minutes
Chilling Time 10 minutes
+
+
+
+
+
Course Main Course
+
+
+
+
Servings 4
Calories 679 kcal
+
+
+

Equipment

  • airfryer optional
+

Ingredients
  

  • 4 chicken breast fillets free range
  • ½ tsp coarse salt ground
  • ½ tsp coarse black pepper ground
  • 1 egg large
  • 45 ml milk

Crumbing:

  • ¾ c (180 ml) yellow cornmeal (fine polenta)
  • ¾ c (180 ml) parmesan finely grated
  • ½ c (125 ml) almond meal (finely ground almonds)
  • ½ tsp (2.5 ml) coarse salt ground
  • ½ tsp (2.5 ml) coarse black pepper ground
  • 1 tsp (5 ml) dried rosemary
  • ½ tsp (2.5 ml) dried thyme
  • 1 lemon zested and cut into wedges
  • olive oil for drizzling
+

Instructions
 

  • Slice the chicken fillets in half to make thinner fillets. By doing it this way, you get 8 pieces of crispy, tender chicken.
  • Season with salt and pepper.
  • Beat the egg and milk together.
  • In a large bowl, mix corn meal, parmesan almond meal, seasoning and lemon zest together until evenly combined.
  • Lightly coat each fillet with the crumb mixture. Then dip into egg mixture followed by a generous coating of crumb mixture. Set aside on a tray, cover and allow to stand for 10 minutes. This can be prepared beforehand and chilled.
  • Airfryer: Place crumbed chicken in the airfryer tray. Do not overcrowd. Drizzle with olive oil and use Airfry setting for 12 minutes or until golden and crispy.
    Oven Bake: Place on a lined baking tray. Drizzle generously with olive oil and bake for at 200°C for +- 20 - 25 minutes or until golden and crispy.
  • Serve immediately with lemon wedges, salad and sauce of your choice.
+ + +

Nutrition

Calories: 679kcalCarbohydrates: 45gProtein: 53gFat: 33gSaturated Fat: 10gPolyunsaturated Fat: 2gMonounsaturated Fat: 6gTrans Fat: 0.02gCholesterol: 145mgSodium: 1395mgPotassium: 700mgFiber: 9gSugar: 3gVitamin A: 531IUVitamin C: 17mgCalcium: 655mgIron: 5mg
+
+
+
Keyword chicken, crispy chicken, crumbed chicken, Gluten Free
+
+
Tried this recipe?Let us know how it was!
+

 

+
+ + + + +
+ + + + + +
+

Leave a Comment

+
+
+
+ +
+ +
+ Recipe Rating +




+
+
+

+ +

+
+ +
+
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_data/bitsofcarey.com/bitsofcarey_3.json b/tests/test_data/bitsofcarey.com/bitsofcarey_3.json new file mode 100644 index 000000000..7ae634a3a --- /dev/null +++ b/tests/test_data/bitsofcarey.com/bitsofcarey_3.json @@ -0,0 +1,112 @@ +{ + "author": "Kayla Burton", + "canonical_url": "https://brokenovenbaking.com/black-velvet-cupcakes/", + "site_name": "Broken Oven Baking", + "host": "bitsofcarey.com", + "language": "en-US", + "title": "Black Velvet Cupcakes with Raspberry Filling", + "ingredients": [ + "1 cup all-purpose flour (weighed in grams or spooned and leveled)", + "⅓ cup black cocoa powder (or regular cocoa powder)", + "½ teaspoon baking soda", + "¼ teaspoon salt", + "⅔ cup granulated sugar", + "⅓ cup vegetable oil", + "1 large egg (room temperature)", + "⅓ cup Lifeway Organic Plain Whole Milk Kefir (room temperature)", + "½ teaspoon white vinegar", + "¼ teaspoon black food coloring (optional, more/less depending on color intensity)", + "⅓ cup hot water", + "3 tablespoons raspberry preserves (optional, or other filling of choice)", + "1 cup unsalted butter (room temperature)", + "3 cups powdered sugar", + "½ cup black cocoa powder (or regular cocoa powder)", + "¼ cup heavy whipping cream (more/less depending on consistency)", + "1 tiny pinch salt (to taste)", + "sprinkles (optional)" + ], + "ingredient_groups": [ + { + "ingredients": [ + "1 cup all-purpose flour (weighed in grams or spooned and leveled)", + "⅓ cup black cocoa powder (or regular cocoa powder)", + "½ teaspoon baking soda", + "¼ teaspoon salt", + "⅔ cup granulated sugar", + "⅓ cup vegetable oil", + "1 large egg (room temperature)", + "⅓ cup Lifeway Organic Plain Whole Milk Kefir (room temperature)", + "½ teaspoon white vinegar", + "¼ teaspoon black food coloring (optional, more/less depending on color intensity)", + "⅓ cup hot water", + "3 tablespoons raspberry preserves (optional, or other filling of choice)" + ], + "purpose": "Black Velvet Cupcakes" + }, + { + "ingredients": [ + "1 cup unsalted butter (room temperature)", + "3 cups powdered sugar", + "½ cup black cocoa powder (or regular cocoa powder)", + "¼ cup heavy whipping cream (more/less depending on consistency)", + "1 tiny pinch salt (to taste)", + "sprinkles (optional)" + ], + "purpose": "Black Buttercream Frosting" + } + ], + "instructions_list": [ + "Black Velvet Cupcakes", + "Preheat oven to 350°F and fill a cupcake pan with liners.", + "In a large bowl, whisk together the flour, cocoa powder, baking soda, and salt.", + "In a medium bowl, whisk together the sugar, vegetable oil, egg, kefir, vinegar, and food coloring.", + "Pour the wet ingredients into the dry ones and mix until a few flour streaks remain. Then, stir in the hot water until combined.", + "Pour the batter evenly throughout the cupcake liners (they should be about 1/2-2/3 full). Bake on the middle rack until a toothpick comes out clean (12-15 minutes).", + "Black Buttercream Frosting", + "In a medium/large bowl, cream together the softened butter, powdered sugar, black cocoa powder, heavy whipping cream, and salt until smooth.", + "Transfer the buttercream to a piping bag fitted with a large piping tip.", + "Assemble the Cupcakes", + "Cut the centers out of the cooled cupcakes (be careful not to cut all the way through the bottom). Save the cutouts. Fill the holes with raspberry preserves, and then place the cutout back on top.", + "Pipe frosting on top of the cupcakes and then decorate with sprinkles or any other decorations!" + ], + "category": "Dessert", + "yields": "12 servings", + "description": "These black velvet cupcakes are made with black cocoa powder and filled with raspberry jam!", + "total_time": 37, + "cook_time": 12, + "prep_time": 25, + "cuisine": "American", + "ratings": 5.0, + "ratings_count": 3, + "equipment": [ + "Mixing bowls", + "Measuring spoons", + "Scale/measuring cups", + "Whisk", + "Spatula", + "Cupcake pan (note: with liners)", + "Electric mixer (note: recommended for the frosting)", + "Piping bag and tip", + "Decorations (note: optional)" + ], + "nutrients": { + "servingSize": "1 serving", + "calories": "441 kcal", + "fatContent": "25 g", + "saturatedFatContent": "13 g", + "unsaturatedFatContent": "10 g", + "transFatContent": "1 g", + "carbohydrateContent": "56 g", + "sugarContent": "43 g", + "proteinContent": "3 g", + "sodiumContent": "111 mg", + "fiberContent": "3 g", + "cholesterolContent": "63 mg" + }, + "image": "https://brokenovenbaking.com/wp-content/uploads/2023/09/black-velvet-cupcakes-14.jpg", + "keywords": [ + "black velvet cupcakes", + "chocolate raspberry cupcakes", + "Halloween cupcakes" + ] +} diff --git a/tests/test_data/bitsofcarey.com/bitsofcarey_3.testhtml b/tests/test_data/bitsofcarey.com/bitsofcarey_3.testhtml new file mode 100644 index 000000000..60152984a --- /dev/null +++ b/tests/test_data/bitsofcarey.com/bitsofcarey_3.testhtml @@ -0,0 +1,3901 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Black Velvet Cupcakes with Raspberry Filling – Broken Oven Baking + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +

Black Velvet Cupcakes with Raspberry Filling

+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_data/brokenovenbaking.com/brokenovenbaking_1.json b/tests/test_data/brokenovenbaking.com/brokenovenbaking_1.json new file mode 100644 index 000000000..a68de131a --- /dev/null +++ b/tests/test_data/brokenovenbaking.com/brokenovenbaking_1.json @@ -0,0 +1,67 @@ +{ + "author": "Kayla Burton", + "canonical_url": "https://brokenovenbaking.com/easy-homemade-strawberry-muffins/", + "site_name": "Broken Oven Baking", + "host": "brokenovenbaking.com", + "language": "en-US", + "title": "Easy Homemade Strawberry Muffins", + "ingredients": [ + "2¼ cups all-purpose flour (divided (weighed in grams for best results))", + "2 teaspoons baking powder", + "½ teaspoon salt", + "½ cup vegetable oil (or other neutral oil)", + "1 cup granulated sugar", + "2 large eggs (room temperature)", + "1½ teaspoons vanilla extract", + "¼ teaspoon almond extract (optional)", + "½ cup Lifeway Organic Strawberry Whole Milk Kefir (room temperature)", + "2 cups chopped strawberries (divided)" + ], + "instructions_list": [ + "Preheat oven to 375°F and fill a muffin pan with liners or grease with non-stick spray.", + "In a medium bowl, whisk together 2 cups of flour, the baking powder, and salt.", + "In a large bowl, whisk together the vegetable oil, sugar, eggs, vanilla extract, almond extract (if using), and strawberry kefir.", + "Chop and measure the strawberries. Pat them dry if they're super juicy.Set aside ½ cup of the chopped berries. Coat 1½ cups of them in ¼ cup of flour.", + "Stir the dry ingredients into the wet ingredients until just a few flour streaks are visible.", + "Fold the flour-coated strawberries into the batter just until combined.", + "Fill the muffin liners about ¾ full with batter. Top with the remaining ½ cup of strawberries and optional coarse sugar.", + "Bake on the middle rack until a toothpick comes out of the center clean (about 20-25 minutes).", + "Once the muffins are cool enough to touch, transfer them to a wire cooling rack." + ], + "category": "Breakfast,Brunch,Dessert,Snack", + "yields": "12 servings", + "description": "Enjoy homemade strawberry muffins for breakfast in just 30 minutes! This recipe is easy to make with real fresh or frozen strawberries.", + "total_time": 35, + "cook_time": 20, + "prep_time": 15, + "cuisine": "American", + "ratings": 5.0, + "ratings_count": 2, + "equipment": [ + "Muffin pan filled with baking cups or lightly greased", + "Mixing bowls", + "Measuring spoons", + "Scale/measuring cups", + "Whisk", + "Spatula", + "Wire cooling rack" + ], + "nutrients": { + "servingSize": "1 serving", + "calories": "258 kcal", + "fatContent": "11 g", + "saturatedFatContent": "2 g", + "unsaturatedFatContent": "8 g", + "transFatContent": "0.1 g", + "carbohydrateContent": "37 g", + "sugarContent": "18 g", + "proteinContent": "4 g", + "sodiumContent": "186 mg", + "fiberContent": "1 g", + "cholesterolContent": "32 mg" + }, + "image": "https://brokenovenbaking.com/wp-content/uploads/2024/02/strawberry-muffins-12.jpg", + "keywords": [ + "strawberry muffins" + ] +} diff --git a/tests/test_data/brokenovenbaking.com/brokenovenbaking_1.testhtml b/tests/test_data/brokenovenbaking.com/brokenovenbaking_1.testhtml new file mode 100644 index 000000000..3f963bde4 --- /dev/null +++ b/tests/test_data/brokenovenbaking.com/brokenovenbaking_1.testhtml @@ -0,0 +1,3704 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Easy Homemade Strawberry Muffins – Broken Oven Baking + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Easy Homemade Strawberry Muffins

+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_data/brokenovenbaking.com/brokenovenbaking_2.json b/tests/test_data/brokenovenbaking.com/brokenovenbaking_2.json new file mode 100644 index 000000000..c7dc8d8f5 --- /dev/null +++ b/tests/test_data/brokenovenbaking.com/brokenovenbaking_2.json @@ -0,0 +1,92 @@ +{ + "author": "Kayla Burton", + "canonical_url": "https://brokenovenbaking.com/no-bake-mini-chocolate-cheesecakes/", + "site_name": "Broken Oven Baking", + "host": "brokenovenbaking.com", + "language": "en-US", + "title": "5 Ingredient No-Bake Mini Chocolate Cheesecakes", + "ingredients": [ + "18 whole Oreo cookies (or similar cream-filled chocolate sandwich cookie)", + "6 tablespoons unsalted butter (measured then melted)", + "⅔ cup chocolate chips (high-quality, semi-sweet or bittersweet)", + "⅓ cup heavy whipping cream", + "12 ounces cream cheese (room temperature)", + "whipped cream", + "crushed Oreos" + ], + "ingredient_groups": [ + { + "ingredients": [ + "18 whole Oreo cookies (or similar cream-filled chocolate sandwich cookie)", + "6 tablespoons unsalted butter (measured then melted)" + ], + "purpose": "Oreo Crusts" + }, + { + "ingredients": [ + "⅔ cup chocolate chips (high-quality, semi-sweet or bittersweet)", + "⅓ cup heavy whipping cream", + "12 ounces cream cheese (room temperature)" + ], + "purpose": "Chocolate Cheesecake Filling" + }, + { + "ingredients": [ + "whipped cream", + "crushed Oreos" + ], + "purpose": "Optional Toppings" + } + ], + "instructions_list": [ + "Make the Chocolate Ganache", + "Place the chocolate chips in a small-medium bowl. Heat the heavy whipping cream (in the microwave or over the stove) until it's simmering.", + "Pour the hot cream over the chocolate chips so they're completely covered in it. Place a plate over the bowl to trap the steam for 5 minutes.When the time's up, stir in a circular motion until it's a smooth ganache. Set aside.", + "Make the Oreo Crusts", + "Add the Oreo cookies and melted butter into a food processor. Pulse until they're crushed into a wet sand-like texture.", + "Evenly distribute the crumbs throughout 12 muffin liners in a muffin pan (about 1-2 tablespoons per muffin cup).", + "Press down with the bottom of a small cup to pack them down firmly. Place the pan in the freezer while making the filling.", + "Make the Chocolate Cheesecake Filling", + "In a medium-large bowl, mix the cream cheese with an electric mixer (or spatula). This is to make sure it's softened and doesn't have any lumps.", + "Using your electric mixer or a whisk, whip the chocolate ganache until it's light and airy. Fold it into the cream cheese just until combined.", + "Assemble the Cheesecakes", + "Evenly distribute the chocolate cheesecake filling on top of the Oreo crusts. I like to use a small-medium cookie scoop for this! Spread the filling so it covers the crusts and is smooth on top.", + "Let the cheesecakes firm up by chilling them in the refrigerator for a few hours before serving. Top with whipped cream and extra crushed Oreos, and enjoy!" + ], + "category": "Dessert", + "yields": "12 servings", + "description": "These mini chocolate cheesecakes are easy to whip up with 5 ingredients in less than 30 minutes! They're a creamy no-bake treat with an Oreo crumb crust!", + "total_time": 25, + "prep_time": 25, + "cuisine": "American", + "ratings": 5.0, + "ratings_count": 1, + "equipment": [ + "Muffin pan with liners", + "Food Processor recommended", + "Electric mixer recommended", + "Mixing bowls", + "Spatula" + ], + "nutrients": { + "servingSize": "1 serving", + "calories": "229 kcal", + "fatContent": "21 g", + "saturatedFatContent": "13 g", + "unsaturatedFatContent": "6 g", + "transFatContent": "0.2 g", + "carbohydrateContent": "9 g", + "sugarContent": "8 g", + "proteinContent": "2 g", + "sodiumContent": "97 mg", + "fiberContent": "0.04 g", + "cholesterolContent": "51 mg" + }, + "image": "https://brokenovenbaking.com/wp-content/uploads/2024/07/no-bake-mini-chocolate-cheesecakes-9-1.jpg", + "keywords": [ + "chocolate cheesecake", + "mini cheesecakes", + "No bake", + "no bake cheesecake" + ] +} diff --git a/tests/test_data/brokenovenbaking.com/brokenovenbaking_2.testhtml b/tests/test_data/brokenovenbaking.com/brokenovenbaking_2.testhtml new file mode 100644 index 000000000..e4cc72263 --- /dev/null +++ b/tests/test_data/brokenovenbaking.com/brokenovenbaking_2.testhtml @@ -0,0 +1,3716 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 Ingredient No-Bake Mini Chocolate Cheesecakes – Broken Oven Baking + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

5 Ingredient No-Bake Mini Chocolate Cheesecakes

+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_data/cakemehometonight.com/cakemehometonight_1.json b/tests/test_data/cakemehometonight.com/cakemehometonight_1.json new file mode 100644 index 000000000..ecd73c303 --- /dev/null +++ b/tests/test_data/cakemehometonight.com/cakemehometonight_1.json @@ -0,0 +1,48 @@ +{ + "author": "Courtney", + "canonical_url": "https://cakemehometonight.com/brownie-cookies/", + "site_name": "Cake Me Home Tonight", + "host": "cakemehometonight.com", + "language": "en-US", + "title": "Brownie Cookies", + "ingredients": [ + "1 cup semisweet chocolate chips", + "6 tbsp unsalted butter", + "½ cup light brown sugar", + "½ cup granulated sugar", + "2 eggs (room temperature)", + "1 tsp vanilla extract", + "½ tsp instant espresso powder (optional)", + "¾ cup all-purpose flour", + "¼ cup dark cocoa powder", + "½ tsp salt", + "flaky sea salt (optional)" + ], + "instructions_list": [ + "Preheat the oven to 350℉ (177℃). Prepare baking sheet pans with silicone baking mats or parchment paper.", + "In a microwave-safe bowl, combine the semisweet chocolate chips and unsalted butter. Heat in the microwave in 30 second intervals, stirring in between each interval until the chocolate is melted and smooth. Set aside to cool while completing the next step.", + "In the bowl of a stand mixer fitted with a whisk attachment or in a large mixing bowl with an electric hand mixer, whip the brown sugar, granulated sugar, and eggs for about 3 minutes until light and pale. Add in the vanilla extract and instant espresso powder and mix on low until combined.", + "While mixing on low speed, slowly pour in the melted chocolate to temper the egg mixture. Continue to mix on low until the chocolate is well combined.", + "If you are using a stand mixer, switch to a paddle attachment. Add the all-purpose flour, dark cocoa powder, and salt. Mix on low speed just until the brownie batter is combined and smooth. Scrape the sides and bottom of the bowl. Do not over mix the brownie batter.", + "Portion the brownie batter with a large cookie scoop (3 tablespoons) and place on the prepared baking sheet pans allowing room for spreading. Sprinkle with flaky sea salt before baking, if desired.", + "Bake the cookies for approximately 13 to 14 minutes until the edges of the cookies are set and the centers are soft. Cool the cookies on the pan for 5 minutes and then transfer to a wire rack to cool completely." + ], + "category": "Dessert", + "yields": "13 servings", + "description": "If a brownie and a cookie had a baby, you would get these delicious brownie cookies. The chocolate brownie cookies have a crackly top and are fudgy and chewy on the inside. No need for brownie mix, this is the best brownie cookie recipe if you have a chocolate craving!", + "total_time": 33, + "cook_time": 13, + "prep_time": 20, + "cuisine": "American", + "ratings": 4.14, + "ratings_count": 23, + "equipment": [ + "Stand mixer or electric hand mixer" + ], + "image": "https://cakemehometonight.com/wp-content/uploads/2023/01/Brownie-Cookies-09.jpg", + "keywords": [ + "brownie", + "chocolate", + "cookie" + ] +} diff --git a/tests/test_data/cakemehometonight.com/cakemehometonight_1.testhtml b/tests/test_data/cakemehometonight.com/cakemehometonight_1.testhtml new file mode 100644 index 000000000..efcad76ae --- /dev/null +++ b/tests/test_data/cakemehometonight.com/cakemehometonight_1.testhtml @@ -0,0 +1,1896 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Brownie Cookies - Cake Me Home Tonight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+ +
+ + +
+ +
+ + +
+ +
+
+

Brownie Cookies

+
+Pin +Jump to Recipe
+ + + +
+

As an Amazon Associate, I earn from qualifying purchases. Please see my full disclosure policy for details.

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/cakemehometonight.com/cakemehometonight_2.json b/tests/test_data/cakemehometonight.com/cakemehometonight_2.json new file mode 100644 index 000000000..ceddebbf4 --- /dev/null +++ b/tests/test_data/cakemehometonight.com/cakemehometonight_2.json @@ -0,0 +1,119 @@ +{ + "author": "Courtney", + "canonical_url": "https://cakemehometonight.com/chocolate-raspberry-cake/", + "site_name": "Cake Me Home Tonight", + "host": "cakemehometonight.com", + "language": "en-US", + "title": "Chocolate Raspberry Cake", + "ingredients": [ + "2 cups all-purpose flour", + "2 cups granulated sugar", + "¾ cup dark cocoa powder", + "2 tsp baking soda", + "1 tsp baking powder", + "1 tsp salt", + "1 cup milk (room temperature)", + "½ cup vegetable oil", + "2 large eggs (room temperature)", + "2 tsp vanilla extract", + "1 cup boiling water or hot coffee", + "½ cup semisweet chocolate chips", + "2 cups unsalted butter (room temperature)", + "5 cups powdered sugar", + "½ cup dark cocoa powder", + "2 tsp vanilla extract", + "½ tsp salt", + "¼ cup heavy cream", + "12 oz frozen raspberries", + "¼ cup granulated sugar", + "1 tbsp lemon juice", + "2 tbsp cornstarch", + "2 tbsp water", + "1 cup fresh raspberries" + ], + "ingredient_groups": [ + { + "ingredients": [ + "2 cups all-purpose flour", + "2 cups granulated sugar", + "¾ cup dark cocoa powder", + "2 tsp baking soda", + "1 tsp baking powder", + "1 tsp salt", + "1 cup milk (room temperature)", + "½ cup vegetable oil", + "2 large eggs (room temperature)", + "2 tsp vanilla extract", + "1 cup boiling water or hot coffee" + ], + "purpose": "Chocolate Cake" + }, + { + "ingredients": [ + "½ cup semisweet chocolate chips", + "2 cups unsalted butter (room temperature)", + "5 cups powdered sugar", + "½ cup dark cocoa powder", + "2 tsp vanilla extract", + "½ tsp salt", + "¼ cup heavy cream" + ], + "purpose": "Creamy Chocolate Buttercream Frosting" + }, + { + "ingredients": [ + "12 oz frozen raspberries", + "¼ cup granulated sugar", + "1 tbsp lemon juice", + "2 tbsp cornstarch", + "2 tbsp water" + ], + "purpose": "Raspberry Filling" + }, + { + "ingredients": [ + "1 cup fresh raspberries" + ], + "purpose": "Additional Ingredients" + } + ], + "instructions_list": [ + "Chocolate Cake", + "Preheat the oven to 350℉. Prepare three 7-inch round cake pans with nonstick cookie spray and parchment paper circles.", + "In a large mixing bowl, whisk the all-purpose flour, granulated sugar, dark cocoa powder, baking soda, baking powder, and salt until well combined. Pour in the milk, vegetable oil, eggs, and vanilla extract and whisk until combined. Add in the boiling water or hot coffee and whisk the cake batter until is is combined and smooth.", + "Divide the cake batter evenly between the prepared cake pans. Bake the cake layers for 25-30 minutes, until the cake springs back when gently touched. Remove the cake pans from the oven. Cool the cake layers in the pans for about 15 minutes before removing and transferring to a wire rack to cool completely.", + "Creamy Chocolate Buttercream Frosting", + "In a microwave-safe bowl, heat the semisweet chocolate chips in 15 second intervals, stirring in between each interval, until the chocolate is melted and smooth. Set aside to cool to room temperature.", + "In the bowl of a stand mixer fitted with a paddle attachment, cream the room temperature butter for 5 minutes until it is pale and creamy. Scrape the bottom and sides of the bowl as needed.", + "Add half of the powdered sugar and mix on low until combined. Add the remaining half of the powdered sugar and mix well. Add the melted chocolate, dark cocoa powder, vanilla extract, and salt and continue to mix on low until combined.", + "Drizzle in the heavy cream. Turn the mixer to medium speed and whip the chocolate buttercream frosting for about 2 to 3 minutes until it is smooth and creamy.", + "Raspberry Filling (Make Ahead)", + "In a medium saucepan, combine the frozen raspberries, granulated sugar, and lemon juice. Cook over medium-low heat stirring occasionally until the raspberries are broken down and the mixture is bubbling.", + "In a small separate bowl, mix together the cornstarch and water until smooth. Remove the saucepan from the heat and add the cornstarch slurry. Mix well until the raspberry filling is thickened.", + "Run the raspberry filling through a fine mesh strainer to remove the seeds. Press the filling through the strainer with a rubber spatula. Cool the raspberry filling to room temperature and then chill in the refrigerator for at least 2 hours to thicken.", + "Assembling the Chocolate Raspberry Cake", + "Level the cooled chocolate cake layers with a serrated knife.", + "Place one cake layer on a round cake board. Add a small amount of chocolate buttercream to the top of the layer and spread evenly with an offset spatula. Use a piping bag with the tip cut off filled with chocolate frosting to pipe a border of the frosting around the edge of the cake. Spread half of the raspberry filling onto the cake layer.", + "Add the next cake layer and repeat the same process above with the second layer. Then, add the final cake layer to the top of the cake, bottom side facing up.", + "With an offset spatula, add a crumb coat, a thin layer of frosting, to the top and sides of the cake. Use a cake scraper to remove excess frosting to smooth the sides. Chill the cake for 20 minutes to firm the frosting.", + "Spread a generous layer of the chocolate buttercream onto the chilled cake with an offset spatula. Use a scalloped cake scraper to remove the excess frosting and create a pattern in the buttercream. Chill for an additional 20 minutes.", + "Use piping bags fitted with Ateco 869 and Wilton 4B piping tips to decorate the top of the cake with additional buttercream. Decorate with fresh raspberries." + ], + "category": "Dessert", + "yields": "12 servings", + "description": "This chocolate raspberry cake is a decadent dessert that is irresistible. The cake is made with moist and tender chocolate cake layers, filled with homemade raspberry filling, frosted in rich chocolate frosting and topped with fresh raspberries. One slice of this cake will not be enough!", + "cuisine": "American", + "ratings": 4.67, + "ratings_count": 3, + "equipment": [ + "3 7-inch round cake pans", + "Stand mixer fitted with a paddle attachment or electric hand mixer" + ], + "image": "https://cakemehometonight.com/wp-content/uploads/2024/01/Chocolate-Raspberry-Cake-07-scaled.jpg", + "keywords": [ + "chocolate cake", + "chocolate raspberry", + "chocolate raspberry cake", + "raspberry" + ] +} diff --git a/tests/test_data/cakemehometonight.com/cakemehometonight_2.testhtml b/tests/test_data/cakemehometonight.com/cakemehometonight_2.testhtml new file mode 100644 index 000000000..c60950ab0 --- /dev/null +++ b/tests/test_data/cakemehometonight.com/cakemehometonight_2.testhtml @@ -0,0 +1,1742 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Chocolate Raspberry Cake - Cake Me Home Tonight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+ +
+ + +
+ +
+ + +
+ +
+
+

Chocolate Raspberry Cake

+
+Pin +Jump to Recipe
+ + + +
+

As an Amazon Associate, I earn from qualifying purchases. Please see my full disclosure policy for details.

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/cambreabakes.com/cambreabakes_1.json b/tests/test_data/cambreabakes.com/cambreabakes_1.json new file mode 100644 index 000000000..4c8daa282 --- /dev/null +++ b/tests/test_data/cambreabakes.com/cambreabakes_1.json @@ -0,0 +1,69 @@ +{ + "author": "Cambrea Gordon", + "canonical_url": "https://cambreabakes.com/oreo-brownies/", + "site_name": "Cambrea Bakes", + "host": "cambreabakes.com", + "language": "en-US", + "title": "Oreo Brownies", + "ingredients": [ + "10 tablespoons unsalted butter", + "2/3 + 1/4 cup semi-sweet chocolate chips", + "1/8 cup unsweetened Dutch cocoa powder", + "1/8 cup black cocoa powder", + "1/2 cup light or dark brown sugar (packed)", + "1/2 cup granulated sugar", + "2 large eggs", + "1 large egg yolk", + "1 tablespoon vanilla extract", + "2/3 cup + 1 tablespoon all-purpose flour", + "1 teaspoon espresso powder (optional)", + "1/2 teaspoon fine sea salt", + "16 Oreo cookies (for the center)", + "1/3 cup chopped Oreo cookies (for the top)" + ], + "instructions_list": [ + "Line a square 8x8 baking pan with parchment paper to cover all four sides. Then preheat the oven to 350 F/180 C.", + "Melt the butter and chocolate chips together until smooth. Then whisk in both cocoa powders. Set aside.", + "Whisk the sugar, eggs, and vanilla extract until combined. Stream the melted chocolate mixture into the egg mixture until just combined.", + "Fold in the flour, espresso powder, and salt until just combined. Then pour half of the brownie batter into the prepared baking pan (about 340 grams).", + "Place the Oreo cookies on top of the batter, then spread the rest of the batter on top. Sprinkle the chopped Oreos over the top of the brownies. Then bake for 33-40 minutes, or until a toothpick inserted into the center comes out covered in a few moist crumbs.", + "Let the baking pan cool on a wire rack compeltely before cutting into 16 squares. Enjoy!", + "Store leftover brownies in an airtight container at room temperature for 2-3 days. You can also freeze the brownies after cutting in an airtight container or freezer bag for up to one month!" + ], + "category": "Dessert", + "yields": "16 servings", + "description": "These fudgy Oreo brownies are packed with Oreo cookies and have perfect crinkle tops—Oreo fans will love them!", + "total_time": 48, + "cook_time": 33, + "prep_time": 15, + "cuisine": "American", + "ratings": 5.0, + "ratings_count": 7, + "equipment": [ + "square metal 8×8 baking pan" + ], + "nutrients": { + "servingSize": "1 serving", + "calories": "195 kcal", + "fatContent": "11 g", + "saturatedFatContent": "6 g", + "unsaturatedFatContent": "5 g", + "transFatContent": "0.3 g", + "carbohydrateContent": "23 g", + "sugarContent": "19 g", + "proteinContent": "2 g", + "sodiumContent": "131 mg", + "fiberContent": "1 g", + "cholesterolContent": "52 mg" + }, + "image": "https://cambreabakes.com/wp-content/uploads/2023/07/oreo-brownies-featured.jpg", + "keywords": [ + "brownies with oreos", + "cookies and cream brownies", + "Oreo brownie bars", + "oreo brownies", + "Oreo cookie brownies", + "Oreo topped brownies", + "Ultimate oreo brownie" + ] +} diff --git a/tests/test_data/cambreabakes.com/cambreabakes_1.testhtml b/tests/test_data/cambreabakes.com/cambreabakes_1.testhtml new file mode 100644 index 000000000..d6e06cc20 --- /dev/null +++ b/tests/test_data/cambreabakes.com/cambreabakes_1.testhtml @@ -0,0 +1,1544 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ultimate Oreo Brownies - Cambrea Bakes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ +
+ + +

Oreo Brownies

+ + + +

Published: September 17, 2024 by Cambrea Gordon

+ + + + +

+ + + +
+

This post may contain affiliate links. *If you want tips, step-by-step shots, and videos, be sure to read the whole post below!

+
+
+ + + +
+
oreo brownie topped with chopped oreo cookies.
+
+ +
+
+
+
+
+
+ +
+ +

These fudgy Oreo brownies are packed with Oreo cookies and have perfect crinkle tops—Oreo fans will love them!

+ + + +
+
an oreo brownie topped with chopped oreos.
+ + + +

As a former pastry chef, I love taking fun desserts and turning them into something even more decadent—like Oreo brookies, Oreo cookie cake, and even Oreo cookie cupcakes!

+ + + +

Like most of my Oreo recipes, these brownies are easy to make, stuffed with Oreos, and can even be made in one bowl! They’re extra rich and fudgy (never cakey)—a quick and easy bake for any occasion!

+ + + + +

Tips for the Best Oreo Flavor

+ + + +

Don’t skip the black cocoa powder. Black cocoa powder has a deep, slightly bitter, and smooth chocolate flavor, which is what gives Oreos their signature taste. It makes the brownies taste more like Oreos themselves!

+ + + +

Top with extra chopped Oreos. Sprinkle crushed Oreos on top of the brownie batter before baking. The extra cookies add texture and amplify the Oreo flavor!

+ + + +

Use double-stuffed Oreos. They have twice the amount of cream filling, which means more of that sweet, creamy texture in your brownies!

+
+ + + +
+
+

Ingredient Notes and Substitutions

+
+ + + +
ingredients needed to make brownies with oreo cookies.
+
+ + + +
+

Dutch cocoa powder: This recipe uses unsweetened cocoa powder. I don’t recommend substituting it because it contributes to the rich brownie flavor—like in our M&M brownies.

+ + + +

Chocolate chips: I recommend semi-sweet chocolate chips, but you can also use dark chocolate chips!

+ + + +

Black cocoa powder: This ingredient naturally has the perfect Oreo flavor. I use it in my Oreo rolls for this reason, too!

+ + + +

Oreo cookies: You can use regular or double-stuffed Oreos. Feel free to substitute any chocolate sandwich cookie or even one of the specialty or holiday flavors for the original!

+ + + +

Find the full ingredient measurements and instructions in the recipe card below!

+
+ + + +
+
+

Recipe Instructions

+ + + +

My #1 baking tip for success: use a kitchen scale!

+
+ + + +
+
+
whisking the eggs and sugar together in a mixing bowl.
+ + + +

Step 1: Whisk the wet ingredients. In a large mixing bowl, whisk the granulated sugar, brown sugar, egg, egg yolk, and vanilla extract until well combined.

+
+ + + +
+
melted butter and chocolate in a bowl with cocoa powder on top.
+ + + +

Step 2: Melt the butter and chocolate. In a medium bowl, melt the butter and chocolate chips until smooth. Then, whisk in the cocoa powders.

+
+
+ + + +
+
+
whisking the melted chocolate mixture into the egg mixture.
+ + + +

Step 3: Stream the chocolate mixture into the bowl. Slowly stream the melted chocolate into the egg mixture, whisking until combined.

+
+ + + +
+
folding the dry ingredients into the brownie batter.
+ + + +

Step 4: Fold in the dry ingredients. Use a rubber spatula to combine the all-purpose flour, espresso powder, and salt until combined.

+
+
+ + + +
+
+
oreo cookies layered on top of the brownie batter in the baking pan.
+ + + +

Step 5: Layer the Oreo cookies. Pour half of the brownie batter into the prepared baking pan. Then, press 16 Oreo cookies in an even layer on top of the brownie batter.

+
+ + + +
+
chopped oreo cookies on top of the brownie batter before baking.
+ + + +

Step 6: Bake! Pour the other half of the batter on top of the Oreo layer, followed by extra Oreo cookies. Then, bake until a toothpick inserted into the center is covered in a few moist crumbs.

+ + + +

Let the pan cool on a wire cooling rack, then cut and enjoy!

+
+
+
+ + + +

Storage and Freezing

+ + + +

Storage: Leftovers can be stored in an airtight container at room temperature for 2-3 days.

+ + + +

Freezing: Freeze any leftovers in an airtight container or freezer bag for up to 1 month!

+ + + +

FAQs

+ + + +
Why aren’t my brownies fudgy?

Too much flour or overbaking the brownies can make them drier and cakier. I highly recommend using a scale to measure the ingredients!

Can I use a boxed brownie mix instead?

Definitely! Follow the mixing and baking instructions on the back of the box for the best results.

+ + + +
cookies and cream brownies with oreo cookies on top.
+ + + +

More Oreo Desserts

+ + + + + + + +
+
+

If you tried this or any other recipe on my website, please let me know how it went in the comments; I love hearing from you! Also, please leave a star rating while you’re there! You can also tag me on Instagram or Facebook so I can check it out!

+
+
+ + +
+
oreo brownie topped with chopped oreo cookies.
+
+ +
+

Oreo Brownies

+
+
+
5 from 7 votes
+
– by Cambrea Gordon
+
+
+
+
These fudgy Oreo brownies are packed with Oreo cookies and have perfect crinkle tops—Oreo fans will love them!
+
+ Print Recipe + Save Recipe + Pin Recipe +
+
Prep Time: 15 minutes
Cook Time: 33 minutes
Total Time: 48 minutes
+
Course: Dessert
Cuisine: American
Servings: 16 servings
+
+ + +
+ +
+
Need Metric Measurements?Use the button options below to toggle between US cups and Metric grams!
+

Ingredients 
 

  • 10 tablespoons unsalted butter
  • 2/3 + 1/4 cup semi-sweet chocolate chips
  • 1/8 cup unsweetened Dutch cocoa powder
  • 1/8 cup black cocoa powder
  • 1/2 cup light or dark brown sugar, packed
  • 1/2 cup granulated sugar
  • 2 large eggs
  • 1 large egg yolk
  • 1 tablespoon vanilla extract
  • 2/3 cup + 1 tablespoon all-purpose flour
  • 1 teaspoon espresso powder, optional
  • 1/2 teaspoon fine sea salt
  • 16 Oreo cookies, for the center
  • 1/3 cup chopped Oreo cookies, for the top
+

Instructions

  • Line a square 8×8 baking pan with parchment paper to cover all four sides. Then preheat the oven to 350 F/180 C.
  • Melt the butter and chocolate chips together until smooth. Then whisk in both cocoa powders. Set aside.
    10 tablespoons (140 g) unsalted butter, 2/3 + 1/4 cup (156 g) semi-sweet chocolate chips, 1/8 cup (12 g) unsweetened Dutch cocoa powder, 1/8 cup (12 g) black cocoa powder
  • Whisk the sugar, eggs, and vanilla extract until combined. Stream the melted chocolate mixture into the egg mixture until just combined.
    1/2 cup (100 g) light or dark brown sugar, 1/2 cup (100 g) granulated sugar, 2 (100 g) large eggs, 1 (18 g) large egg yolk, 1 tablespoon vanilla extract
  • Fold in the flour, espresso powder, and salt until just combined. Then pour half of the brownie batter into the prepared baking pan (about 340 grams).
    2/3 cup + 1 tablespoon (90 g) all-purpose flour, 1 teaspoon espresso powder, 1/2 teaspoon fine sea salt
  • Place the Oreo cookies on top of the batter, then spread the rest of the batter on top. Sprinkle the chopped Oreos over the top of the brownies. Then bake for 33-40 minutes, or until a toothpick inserted into the center comes out covered in a few moist crumbs.
    16 Oreo cookies, 1/3 cup chopped Oreo cookies
  • Let the baking pan cool on a wire rack compeltely before cutting into 16 squares. Enjoy!
  • Store leftover brownies in an airtight container at room temperature for 2-3 days. You can also freeze the brownies after cutting in an airtight container or freezer bag for up to one month!
+

Video

+
+ + + + + +
+
+

Notes

*Measure your dry ingredients properly. This is my #1 baking tip! Do not ever scoop a measuring cup into your flour, as this always leads to using too much flour. Instead, use the spoon-level method. This means fluffing the flour first, then spooning it into your measuring cup/spoon. For the BEST results, use a kitchen scale!*
+ +
+
+
Serving: 1serving | Calories: 195kcal | Carbohydrates: 23g | Protein: 2g | Fat: 11g | Saturated Fat: 6g | Polyunsaturated Fat: 1g | Monounsaturated Fat: 4g | Trans Fat: 0.3g | Cholesterol: 52mg | Sodium: 131mg | Potassium: 81mg | Fiber: 1g | Sugar: 19g | Vitamin A: 266IU | Calcium: 18mg | Iron: 2mg
+
+

The calorie information provided for the recipe is an estimate. The accuracy of the calories listed is not guaranteed.

+
+ +
+ +
+
+
+ +
+
+
+
+ 5 from 7 votes (6 ratings without comment) +
+
+
+

Leave a Reply

Your email address will not be published. Required fields are marked *

+ +
+ Recipe Rating +




+
+
+

+ +
+

+ +

+

3 Comments

    +
  1. +
    +
    +
    + Mallory says:
    + + + +
    + +
    +

    Hi can I double this recipe to make in a bigger rectangular pan? Thanks!

    +
    + +
    +
      +
    1. + +
    2. +
    +
  2. +
  3. +
    +
    +
    + Nicole says:
    + + + +
    + +
    +

    sooooo good! i was so glad i had leftover black cocoa to make these. super fudgy and perfect oreo flavor!5 stars

    +
    + +
    +
  4. +
+
+
+
+ +
+
+
+
+ +
+

Hi! I’m Cambrea

+ + + +
+ + + +
+

Hi! I’m Cambrea

+ + + +

I’m a professionally trained pastry chef with over 8 years of experience in the food industry, and the founder of Cambrea Bakes. Here you’ll find elevated, bakery-style recipes for any occasion!

+ + + + +
+ + + +

Featured In

+ + + +
+
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+
+
+ + + +

My Favorites

+ +
+ + + + + + +

Featured In

+ + + +
+
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+
+
+ +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/cambreabakes.com/cambreabakes_2.json b/tests/test_data/cambreabakes.com/cambreabakes_2.json new file mode 100644 index 000000000..b89e415b5 --- /dev/null +++ b/tests/test_data/cambreabakes.com/cambreabakes_2.json @@ -0,0 +1,128 @@ +{ + "author": "Cambrea Gordon", + "canonical_url": "https://cambreabakes.com/brown-butter-cinnamon-rolls/", + "site_name": "Cambrea Bakes", + "host": "cambreabakes.com", + "language": "en-US", + "title": "Brown Butter Cinnamon Rolls", + "ingredients": [ + "1 1/2 cups unsalted butter", + "3/4 cup water", + "1/4 cup bread flour (*See notes below for measuring*)", + "3 2/3 cups bread flour", + "1/3 cup granulated sugar", + "2 teaspoons instant yeast", + "1 teaspoon fine sea salt", + "1/3 cup heavy cream (room temperature)", + "1/3 cup whole milk (room temperature)", + "1 large egg (room temperature)", + "1 teaspoon vanilla bean paste or extract", + "Tangzhong from above", + "1/2 cup browned butter", + "1/2 cup browned butter", + "2/3 cup light brown sugar (packed)", + "2 tablespoons ground cinnamon", + "6 tablespoons browned butter", + "5 ounces cold cream cheese", + "1 cup powdered sugar", + "2 tablespoons heavy cream", + "1/2 teaspoon vanilla bean paste or extract" + ], + "ingredient_groups": [ + { + "ingredients": [ + "1 1/2 cups unsalted butter" + ], + "purpose": "Brown butter" + }, + { + "ingredients": [ + "3/4 cup water", + "1/4 cup bread flour (*See notes below for measuring*)" + ], + "purpose": "Tangzhong" + }, + { + "ingredients": [ + "3 2/3 cups bread flour", + "1/3 cup granulated sugar", + "2 teaspoons instant yeast", + "1 teaspoon fine sea salt", + "1/3 cup heavy cream (room temperature)", + "1/3 cup whole milk (room temperature)", + "1 large egg (room temperature)", + "1 teaspoon vanilla bean paste or extract", + "Tangzhong from above", + "1/2 cup browned butter" + ], + "purpose": "Cinnamon Roll Dough" + }, + { + "ingredients": [ + "1/2 cup browned butter", + "2/3 cup light brown sugar (packed)", + "2 tablespoons ground cinnamon" + ], + "purpose": "Brown Butter Filling" + }, + { + "ingredients": [ + "6 tablespoons browned butter", + "5 ounces cold cream cheese", + "1 cup powdered sugar", + "2 tablespoons heavy cream", + "1/2 teaspoon vanilla bean paste or extract" + ], + "purpose": "Brown Butter Cream Cheese Frosting" + } + ], + "instructions_list": [ + "Brown the Butter", + "Cook the butter in a pot over medium heat, stirring frequently, until the bottom is covered in browned milk solids, is amber in color, and it smells nutty. Pour the butter into a dish and chill in the fridge for 1-2 hours, stirring well every 30 minutes, until the butter is solidified but has a spreadable consistency. You can also brown the butter the day before and leave it in the fridge to chill overnight. The next day, let it come to room temperature before using it.", + "Make the Cinnamon Roll Dough", + "For the tangzhong, whisk together the water and flour in a pot. Cook over medium heat, whisking constantly, for 4-5 minutes or until the mixture is a paste-like slurry. Scrape it into a bowl and set it aside until ready to use.", + "In a stand mixing bowl, mix together the flour, sugar, yeast, and salt until combined. Then add the cream, milk, egg, vanilla, and tangzhong. Knead on low speed with the dough hook until it forms a rough dough ball.", + "With the mixer running on low, add the browned butter a spoonful at a time, letting it fully incorporate into the dough before adding more. Then, continue kneading for another 11-12 minutes or until the dough looks smooth and elastic.", + "Form the dough into a smooth, round ball and return it to the mixing bowl. Cover the bowl with plastic wrap and let it rest for 30 minutes.", + "Make the Filling", + "Combine the brown butter, brown sugar, and cinnamon until smooth.", + "Assemble the Cinnamon Rolls", + "Place the dough on a lightly floured surface and sprinkle more flour on top. Roll it out into a 15”x 21” rectangle, with the longest side closest to you. Dollop the cinnamon sugar mixture across the surface of the dough, then use an offset spatula to gently spread it across, leaving a 1-inch border clean at the top. Don’t be too aggressive with spreading it, or you’ll tear the dough!", + "Use a pizza cutter to cut twelve 1 3/4-inch strips. Roll each strip away from you, then carefully transfer it to a parchment-lined metal 9x13 baking pan.", + "Cover the pan with plastic wrap and let it rise in a warm place for 1-2 hours or until the rolls double in size. Meanwhile, preheat the oven to 325 F/162 C.", + "Bake the rolls for 25-35 minutes or until the tops are barely golden brown.", + "While the rolls are baking, make the cream cheese frosting. In a stand mixing bowl, combine the cream cheese and brown butter until well combined. (You should have just enough leftover brown butter for the frosting. It's okay if it's slightly under or over!) Then, mix in the powdered sugar. Keep beating on low speed until the frosting is light and fluffy, then mix in the vanilla and heavy cream.", + "Once baked, let the pan cool on a wire cooling rack for 15 minutes, then spread the brown butter frosting on top. Enjoy!" + ], + "category": "Dessert", + "yields": "12 servings", + "description": "Caramelized, nutty brown butter is the star of these brown butter cinnamon rolls! Infused into the dough, cinnamon sugar filling, and cream cheese frosting–– they're everything you love about classic cinnamon rolls but with an elevated layer of richness!", + "total_time": 205, + "cook_time": 25, + "prep_time": 180, + "cuisine": "American", + "ratings": 5.0, + "ratings_count": 2, + "nutrients": { + "servingSize": "1 serving", + "calories": "551 kcal", + "fatContent": "32 g", + "saturatedFatContent": "19 g", + "unsaturatedFatContent": "10 g", + "transFatContent": "1 g", + "carbohydrateContent": "61 g", + "sugarContent": "29 g", + "proteinContent": "8 g", + "sodiumContent": "251 mg", + "fiberContent": "2 g", + "cholesterolContent": "98 mg" + }, + "image": "https://cambreabakes.com/wp-content/uploads/2024/08/brown-butter-cinnamon-rolls-featured-2.jpg", + "keywords": [ + "bakery cinnamon rolls", + "Brown butter cinnamon rolls", + "Brown butter rolls", + "Browned butter cinnamon rolls", + "Cinnamon rolls with brown butter" + ] +} diff --git a/tests/test_data/cambreabakes.com/cambreabakes_2.testhtml b/tests/test_data/cambreabakes.com/cambreabakes_2.testhtml new file mode 100644 index 000000000..6c4968389 --- /dev/null +++ b/tests/test_data/cambreabakes.com/cambreabakes_2.testhtml @@ -0,0 +1,1574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Brown Butter Cinnamon Rolls - Cambrea Bakes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ +
+ + +

Brown Butter Cinnamon Rolls

+ + + +

Published: August 12, 2024 by Cambrea Gordon

+ + + + +

+ + + +
+

This post may contain affiliate links. *If you want tips, step-by-step shots, and videos, be sure to read the whole post below!

+
+
+ + + +
+
Brown butter rolls on a white plate with a fork digging into it.
+
+ +
+
+
+
+
+
+ +
+ +

Caramelized, nutty brown butter is the star of these brown butter cinnamon rolls! Infused into the dough, cinnamon sugar filling, and cream cheese frosting–– they’re everything you love about classic cinnamon rolls but with an elevated layer of richness!

+ + + +
Brown butter cinnamon roll on a white plate with a fork digging into it.
+ + + +

As a former pastry chef, I’ve created countless cinnamon rolls, each with its own unique twist. For these brown butter cinnamon rolls, I started with my best cinnamon roll recipe, known for its perfectly gooey and fluffy texture, and then elevated it with liquid gold— aka brown butter!

+ + + +

Inside the brown butter dough is brown butter cinnamon filling, all topped with a luscious brown butter cream cheese icing, so every bite is rich with nutty, caramelized goodness! Like my bacon rolls and apple pie rolls, this recipe is a cozy, sweet treat perfect for breakfast or dessert.

+ + + + +

Tips for Browning Butter

+ + + +

Here are my three top tips for making brown butter. If you’re curious to learn more, I wrote a whole tutorial on how to brown butter that’s packed with tips, tricks, and more recipes!

+ + + +

Use a light-colored pot. Use a light-colored or stainless steel pot (not a pan!) to monitor the butter’s color as it browns. This helps you see the exact moment it turns golden brown to prevent burning.

+ + + +

Cook over medium heat. This gives you more control over the butter to avoid burning it. High heat can cause the butter to brown too quickly!

+ + + +

Watch for visual and aromatic clues. The butter will transition from yellow to amber brown, brown specks will form on the bottom of the pan, and it will smell nutty.

+ + + +

Ingredient Notes and Substitutions

+ + + +
Ingredients needed to make brown butter cinnamon rolls in bowls with labels.
+ + + +

Butter: Unsalted butter is best since salt content can vary from brand to brand.

+ + + +

Instant yeast: This ingredient gives the rolls a light and fluffy texture, just like in my cinnamon roll cake. I prefer instant over active dry yeast because it gives them a more yeasty flavor, and you can skip the second rise! If you want to use active dry yeast, see my post on how to bake with yeast for tips.

+ + + +

Bread flour: The higher gluten content in bread flour results in a chewier texture. While all-purpose flour works, bread flour will give you the best results!

+ + + +

Heavy cream: Instead of pouring cream over the rolls like other recipes, it gets incorporated into the dough for tenderness, richness, and moisture. If you don’t have any on hand, you can use whole milk instead.

+ + + +

Recipe Instructions

+ + + +

Step 1: Brown the butter. Because you will be browning just over a cup of butter, use a pot and not a pan; otherwise, you risk it boiling over! When ready, it should be a nice amber-brown color, as shown below (Image 1 below).

+ + + +

Step 2: Cool the butter. Chill the butter in the fridge, stirring it well every 30 minutes, until it has a softened, spreadable consistency. (Image 2 below) You can also chill it overnight and then bring it to room temperature before using it.

+ + + +

Step 3: Make the tangzhong. Cook the water and bread flour in a pot over medium-low heat until it resembles a thick paste. (Image 3 below)

+ + + +
A process collage of the steps for making the brown butter cinnamon roll dough.
+ + + +

Step 4: Combine the wet and dry ingredients. In a stand mixing bowl, add all of the wet and dry ingredients. (Image 4 above)

+ + + +

Step 5: Knead to form a rough dough ball. With the dough hook attachment, knead the dough on low speed until it forms a rough dough ball. (Image 5 below)

+ + + +

Step 6: Knead in the browned butter. Knead in the brown butter a spoonful at a time, then continue kneading until the dough cleans the sides of the bowl and looks smooth and elastic. (Image 6 below)

+ + + +
A process collage of the steps for kneading and rolling out the dough.
+ + + +

Step 7: Let the dough rest. Form the dough into a ball and place it back into the mixing bowl, covering the top with plastic wrap. Let it rest; this will relax the gluten and make it easier to roll out. (Image 7 above)

+ + + +

Step 8: Roll out the dough. Use a rolling pin to roll the dough into a 15×21″ rectangle. You should need to use minimal flour! (Image 8 above)

+ + + +

Step 9: Spread the brown butter filling. Spread the brown butter cinnamon mixture evenly over the top, leaving a 1″ border at the top clean. (Image 9 below)

+ + + +
A process collage of the steps for filling and rolling out the browned butter rolls
+ + + +

Step 10: Cut the rolls. Use a pizza wheel to cut twelve 1 3/4-inch strips. Roll each one away from you, securing the clean edge to the roll to seal in the filling. (Image 10 above)

+ + + +

Step 11: Let the rolls rise. Place the cinnamon rolls into the prepared 9×13 baking pan. Cover the top with plastic wrap and let them rise in a warm place until doubled in size. (Image 11 above)

+ + + +

Step 12: Bake, then cover with frosting! Once doubled in size, bake the cinnamon rolls in the preheated oven until the tops are lightly golden brown. Let them cool slightly, then spread the brown butter icing over the tops and allow it to melt into the centers. (Image 12 above)

+ + + +

Baking Tips for Success

+ + + +

Use a kitchen scale. Baking with a scale is my #1 baking tip! If your cinnamon rolls are coming out dry and dense, it’s almost always due to using too much flour!

+ + + +

Cool the butter before use. Unlike other recipes like brown butter rice krispies that use liquid brown butter, this recipe relies on more solidified butter! If the butter is too warm or liquid, the dough will be harder to handle. If this happens, don’t worry; just add a tablespoon of flour to the dough at a time and as needed.

+ + + +

Storage, Freezing, and Make Ahead

+ + + +

Storage: Leftovers can be kept in an airtight container at room temperature for up to 3 days. I highly recommend warming them in the microwave or oven before serving!

+ + + +

Freezing: Once the cinnamon rolls are assembled, cover the baking pan tightly with plastic wrap and foil and freeze for up to 2 weeks. When ready to bake, let them defrost in the fridge overnight. Then next day, let them come to room temperature and double in size before baking.

+ + + +

Make ahead: Once assembled, wrap the baking pan with plastic wrap and chill it in the fridge overnight. The next day, let them double in size at room temperature before baking.

+ + + +

FAQs

+ + + +
+
Why are my cinnamon rolls dense instead of light and fluffy?

This could be due to not allowing the dough to rise enough or using too much flour. Make sure the dough is soft and slightly sticky, and allow it to rise until doubled in size.

Why did my brown butter burn?

Brown butter can burn quickly if not monitored closely. Cook it over medium heat and remove it from the heat as soon as it turns golden brown and starts to smell nutty.

How do I get evenly sized cinnamon rolls?

Use a ruler to measure and mark the dough before cutting it into rolls!

How do I know when the dough is kneaded enough?

The dough should be smooth, elastic, and slightly tacky to the touch. If you gently press a finger into the dough, it should slowly bounce back.

Can I use regular butter instead of brown butter?

If you don’t care for brown butter or don’t have time to make it, try my classic homemade cinnamon rolls instead!

+ + + +
Browned butter cinnamon rolls in a baking pan.
+ + + +

More Cinnamon Roll Recipes

+ + + + + + + +

If you tried this or any other recipe on my website, please let me know how it went in the comments; I love hearing from you! Also, please leave a star rating while you’re there! You can also tag me on Instagram or Facebook so I can check it out!

+ + +
+
Brown butter rolls on a white plate with a fork digging into it.
+
+ +
+

Brown Butter Cinnamon Rolls

+
+
+
5 from 2 votes
+
– by Cambrea Gordon
+
+
+
+
Caramelized, nutty brown butter is the star of these brown butter cinnamon rolls! Infused into the dough, cinnamon sugar filling, and cream cheese frosting–– they're everything you love about classic cinnamon rolls but with an elevated layer of richness!
+
+ Print Recipe + Save Recipe + Pin Recipe +
+
Prep Time: 3 hours
Cook Time: 25 minutes
Total Time: 3 hours 25 minutes
+
Course: Dessert
Cuisine: American
Servings: 12 servings
+
+ + +
+ +
+
Need Metric Measurements?Use the button options below to toggle between US cups and Metric grams!
+

Ingredients 
 

Brown butter

  • 1 1/2 cups unsalted butter

Tangzhong

  • 3/4 cup water
  • 1/4 cup bread flour, *See notes below for measuring*

Cinnamon Roll Dough

  • 3 2/3 cups bread flour
  • 1/3 cup granulated sugar
  • 2 teaspoons instant yeast
  • 1 teaspoon fine sea salt
  • 1/3 cup heavy cream, room temperature
  • 1/3 cup whole milk, room temperature
  • 1 large egg, room temperature
  • 1 teaspoon vanilla bean paste or extract
  • Tangzhong from above
  • 1/2 cup browned butter

Brown Butter Filling

  • 1/2 cup browned butter
  • 2/3 cup light brown sugar, packed
  • 2 tablespoons ground cinnamon

Brown Butter Cream Cheese Frosting

  • 6 tablespoons browned butter
  • 5 ounces cold cream cheese
  • 1 cup powdered sugar
  • 2 tablespoons heavy cream
  • 1/2 teaspoon vanilla bean paste or extract
+

Instructions

Brown the Butter

  • Cook the butter in a pot over medium heat, stirring frequently, until the bottom is covered in browned milk solids, is amber in color, and it smells nutty. Pour the butter into a dish and chill in the fridge for 1-2 hours, stirring well every 30 minutes, until the butter is solidified but has a spreadable consistency. You can also brown the butter the day before and leave it in the fridge to chill overnight. The next day, let it come to room temperature before using it.
    1 1/2 cups (339 g) unsalted butter

Make the Cinnamon Roll Dough

  • For the tangzhong, whisk together the water and flour in a pot. Cook over medium heat, whisking constantly, for 4-5 minutes or until the mixture is a paste-like slurry. Scrape it into a bowl and set it aside until ready to use.
    3/4 cup (155 g) water, 1/4 cup (32 g) bread flour
  • In a stand mixing bowl, mix together the flour, sugar, yeast, and salt until combined. Then add the cream, milk, egg, vanilla, and tangzhong. Knead on low speed with the dough hook until it forms a rough dough ball.
    3 2/3 cups (485 g) bread flour, 1/3 cup (66 g) granulated sugar, 2 teaspoons instant yeast, 1 teaspoon fine sea salt, 1/3 cup (78 g) heavy cream, 1/3 cup (78 g) whole milk, 1 (50 g) large egg, 1 teaspoon vanilla bean paste or extract, Tangzhong from above
  • With the mixer running on low, add the browned butter a spoonful at a time, letting it fully incorporate into the dough before adding more. Then, continue kneading for another 11-12 minutes or until the dough looks smooth and elastic.
    1/2 cup (110 g) browned butter
  • Form the dough into a smooth, round ball and return it to the mixing bowl. Cover the bowl with plastic wrap and let it rest for 30 minutes.

Make the Filling

  • Combine the brown butter, brown sugar, and cinnamon until smooth.
    1/2 cup (110 g) browned butter, 2/3 cup (135 g) light brown sugar, 2 tablespoons ground cinnamon

Assemble the Cinnamon Rolls

  • Place the dough on a lightly floured surface and sprinkle more flour on top. Roll it out into a 15”x 21” rectangle, with the longest side closest to you. Dollop the cinnamon sugar mixture across the surface of the dough, then use an offset spatula to gently spread it across, leaving a 1-inch border clean at the top. Don’t be too aggressive with spreading it, or you’ll tear the dough!
  • Use a pizza cutter to cut twelve 1 3/4-inch strips. Roll each strip away from you, then carefully transfer it to a parchment-lined metal 9×13 baking pan.
  • Cover the pan with plastic wrap and let it rise in a warm place for 1-2 hours or until the rolls double in size. Meanwhile, preheat the oven to 325 F/162 C.
  • Bake the rolls for 25-35 minutes or until the tops are barely golden brown.
  • While the rolls are baking, make the cream cheese frosting. In a stand mixing bowl, combine the cream cheese and brown butter until well combined. (You should have just enough leftover brown butter for the frosting. It's okay if it's slightly under or over!) Then, mix in the powdered sugar. Keep beating on low speed until the frosting is light and fluffy, then mix in the vanilla and heavy cream.
    6 tablespoons (84 g) browned butter, 5 ounces cold cream cheese, 1 cup (120 g) powdered sugar, 2 tablespoons heavy cream, 1/2 teaspoon vanilla bean paste or extract
  • Once baked, let the pan cool on a wire cooling rack for 15 minutes, then spread the brown butter frosting on top. Enjoy!
+

Video

+
+ + + + + +
+
+

Notes

*Measure your dry ingredients properly. This is my #1 baking tip! Do not ever scoop a measuring cup into your flour, as this always leads to using too much flour. Instead, use the spoon-level method. This means fluffing the flour first, then spooning it into your measuring cup/spoon. For the BEST results, use a kitchen scale!*
+Storage/Freezing: Leftovers can be stored in an airtight container at room temperature for up to 3 days. Reheat them in the microwave or oven until warmed through before serving! To freeze, assemble, then cover the baking pan with a layer of plastic wrap and foil. Freeze for up to 2 weeks. When ready to bake, defrost in the fridge overnight, then let them double in size at room temperature before baking.
+Notes on baking pans: For best results, use a metal baking pan. If you use a glass or ceramic one, note that the rolls will take longer to bake because of the way the heat is conducted differently! 
+ +
+
+
Serving: 1serving | Calories: 551kcal | Carbohydrates: 61g | Protein: 8g | Fat: 32g | Saturated Fat: 19g | Polyunsaturated Fat: 2g | Monounsaturated Fat: 8g | Trans Fat: 1g | Cholesterol: 98mg | Sodium: 251mg | Potassium: 129mg | Fiber: 2g | Sugar: 29g | Vitamin A: 1037IU | Vitamin C: 0.1mg | Calcium: 66mg | Iron: 1mg
+
+

The calorie information provided for the recipe is an estimate. The accuracy of the calories listed is not guaranteed.

+
+ +
+ + +
+
+
+ +
+
+
+
+ 5 from 2 votes
+
+
+

Leave a Reply

Your email address will not be published. Required fields are marked *

+ +
+ Recipe Rating +




+
+
+

+ +
+

+ +

+

5 Comments

    +
  1. +
    +
    +
    + Melanie says:
    + + + +
    + +
    +

    do you have a gluten free brown butter cinnamon roll recipe?

    +
    + +
    +
      +
    1. + +
    2. +
    +
  2. +
  3. +
    +
    +
    + Ozzy Rial says:
    + + + +
    + +
    +

    Everyone at the office loved these! Multiple people said they were some of the best cinnamon rolls they’ve ever had! So easy to make too!5 stars

    +
    + +
    +
      +
    1. +
      + + +
      +

      So happy to hear that Ozzy! Thank you so much for coming back to leave a review 🙂

      +
      + +
      +
    2. +
    +
  4. +
  5. +
    +
    +
    + Rocio says:
    + + + +
    + +
    +

    Your cinnamon rolls never disappoint! These were so delicious and were truly packed with brown butter flavor. I made the butter the day before and let it chill overnight, then let it sit on my counter for about 45 minutes to soften and it was the perfect texture!5 stars

    +
    + +
    +
  6. +
+
+
+
+ +
+
+
+
+ +
+

Hi! I’m Cambrea

+ + + +
+ + + +
+

Hi! I’m Cambrea

+ + + +

I’m a professionally trained pastry chef with over 8 years of experience in the food industry, and the founder of Cambrea Bakes. Here you’ll find elevated, bakery-style recipes for any occasion!

+ + + + +
+ + + +

Featured In

+ + + +
+
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+
+
+ + + +

My Favorites

+ +
+ + + + + + +

Featured In

+ + + +
+
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+
+
+ +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_1.json b/tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_1.json new file mode 100644 index 000000000..cdb12a8bb --- /dev/null +++ b/tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_1.json @@ -0,0 +1,57 @@ +{ + "author": "Colleen Christensen", + "canonical_url": "https://colleenchristensennutrition.com/no-churn-mississippi-mud-pie-ice-cream/", + "site_name": "Colleen Christensen Nutrition", + "host": "colleenchristensennutrition.com", + "language": "en-US", + "title": "No Churn Mississippi Mud Pie Ice Cream", + "ingredients": [ + "½ cup warm milk", + "2 tbsp instant coffee", + "2 cups heavy whipping cream (cold)", + "1, 14 oz can of sweetened condensed milk", + "1, 3.9 oz box of chocolate pudding mix", + "2 tsp vanilla extract", + "1.5 cup crushed Oreos + 2 tbsp", + "1/2 cup chocolate chunks + 2 tbsp", + "1/2 cup chocolate syrup + 1 tbsp" + ], + "instructions_list": [ + "To heat your milk you can microwave it for 1 minute. Add 2 tbsp instant coffee to it and mix. Place it back in the fridge or freezer to cool fully.", + "Next, pour your heavy whipping cream into a large bowl or stand mixer. Begin to mix on low then slowly increase speed. Mix for ~3 minutes until stiff peaks form and you’ve made whipped cream!", + "In a separate large bowl, combine sweetened condensed milk, cooled instant coffee milk, chocolate pudding mix, and vanilla extract.", + "Gently fold in your whipped cream to the sweetened condensed milk mixture. Do not stir this vigorously! You don’t want to reduce the air in the whipped cream. Fold until mixture is uniform.", + "Next, fold in 1.5 cups crushed Oreos and ½ cup chocolate chunks", + "Now, fill your ice cream container. Pour 1/3 of your ice cream mixture into a ~6+ cup container (you can also use a loaf pan!). Now, add ¼ cup of chocolate sauce and then use a knife to gently swirl it in. Repeat this process: ⅓ of the ice cream, ⅓ of the chocolate sauce, swirl, repeat! You’ll end with the chocolate sauce. Then you’ll add 1-2 tbsp crushed cookies, 1-2 tbsp of chocolate chunks and 1 tbsp of chocolate syrup. Press everything down slightly.", + "Freeze for 8 hours.", + "Once frozen, remove from the freezer and enjoy!" + ], + "category": "Cookies, Cakes & Desserts", + "yields": "12 servings", + "description": "If you're looking for a chocolate-packed creamy cool dessert, you have to try this no churn recipe for Mississippi Mud Pie Ice Cream. Decadent, rich, and perfect for those hot Summer days!", + "total_time": 490, + "prep_time": 10, + "nutrients": { + "servingSize": "0.5 cup", + "calories": "347 kcal", + "fatContent": "19 g", + "saturatedFatContent": "12 g", + "unsaturatedFatContent": "6 g", + "transFatContent": "1 g", + "carbohydrateContent": "39 g", + "sugarContent": "36 g", + "proteinContent": "5 g", + "sodiumContent": "283 mg", + "fiberContent": "1 g", + "cholesterolContent": "61 mg" + }, + "image": "https://colleenchristensennutrition.com/wp-content/uploads/2022/07/closeup-Mississippi-mud-ice-cream.jpg", + "keywords": [ + "chocolate recipes", + "homemade ice cream", + "ice cream", + "ice cream recipes", + "Mississippi Mud", + "no churn ice cream recipes" + ] +} diff --git a/tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_1.testhtml b/tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_1.testhtml new file mode 100644 index 000000000..63d4241e4 --- /dev/null +++ b/tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_1.testhtml @@ -0,0 +1,1547 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + No Churn Mississippi Mud Pie Ice Cream - Colleen Christensen Nutrition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + +

No Churn Mississippi Mud Pie Ice Cream

+ +
+
If you're looking for a chocolate-packed creamy cool dessert, you have to try this no churn recipe for Mississippi Mud Pie Ice Cream. Decadent, rich, and perfect for those hot Summer days!
+
Servings 12 servings
Prep Time 10 minutes
+
+ +
+ + + +
+
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_2.json b/tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_2.json new file mode 100644 index 000000000..8e5699e62 --- /dev/null +++ b/tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_2.json @@ -0,0 +1,121 @@ +{ + "author": "Colleen Christensen", + "canonical_url": "https://colleenchristensennutrition.com/peanut-butter-stuffed-dates-5-ways/", + "site_name": "Colleen Christensen Nutrition", + "host": "colleenchristensennutrition.com", + "language": "en-US", + "title": "Stuffed Peanut Butter Dates", + "ingredients": [ + "4 Inspired Organics Dates", + "2 teaspoons Inspired Organics Peanut butter", + "2 teaspoons chopped peanuts", + "2 tablespoons melted Chocolate chips* (I used semisweet)", + "¼ teaspoon Inspired Organics Coconut oil*", + "4 Inspired Organics Dates", + "2 teaspoons Inspired Organics Peanut butter", + "2 teaspoons Inspired Organics Preserves", + "4 Inspired Organics Dates", + "2 teaspoons Inspired Organics Peanut butter", + "1 teaspoon Inspired Organics honey", + "2 teaspoons Inspired Organics coconut chips", + "4 Inspired Organics Dates", + "2 teaspoons Inspired Organics Peanut butter", + "2 teaspoons Goat cheese", + "1 teaspoon Green onions (thinly sliced)", + "4 Inspired Organics Dates", + "2 teaspoons Inspired Organics Peanut Butter", + "1 teaspoon Inspired Organics Dried banana chips (crushed)", + "1 teaspoon Bacon bits" + ], + "ingredient_groups": [ + { + "ingredients": [ + "4 Inspired Organics Dates", + "2 teaspoons Inspired Organics Peanut butter", + "2 teaspoons chopped peanuts", + "2 tablespoons melted Chocolate chips* (I used semisweet)", + "¼ teaspoon Inspired Organics Coconut oil*" + ], + "purpose": "Snickers Peanut Butter Dates" + }, + { + "ingredients": [ + "4 Inspired Organics Dates", + "2 teaspoons Inspired Organics Peanut butter", + "2 teaspoons Inspired Organics Preserves" + ], + "purpose": "Peanut Butter & Jelly Stuffed Dates" + }, + { + "ingredients": [ + "4 Inspired Organics Dates", + "2 teaspoons Inspired Organics Peanut butter", + "1 teaspoon Inspired Organics honey", + "2 teaspoons Inspired Organics coconut chips" + ], + "purpose": "Honey Coconut Peanut Butter Dates" + }, + { + "ingredients": [ + "4 Inspired Organics Dates", + "2 teaspoons Inspired Organics Peanut butter", + "2 teaspoons Goat cheese", + "1 teaspoon Green onions (thinly sliced)" + ], + "purpose": "Goat Cheese Peanut Butter Dates" + }, + { + "ingredients": [ + "4 Inspired Organics Dates", + "2 teaspoons Inspired Organics Peanut Butter", + "1 teaspoon Inspired Organics Dried banana chips (crushed)", + "1 teaspoon Bacon bits" + ], + "purpose": "Elvis Stuffed Dates" + } + ], + "instructions_list": [ + "Snickers Peanut Butter Dates", + "Cut date in half lengthwise", + "Add ½ tsp peanut butter to the center followed by ½ tsp chopped peanuts", + "In a small microwave safe bowl or ramekin melt chocolate chips and coconut oil together for 30-60 seconds (stop at the 30 second mark to stir)", + "Place your date ½ way into the melted chocolate. I recommend using a spoon to pour chocolate on the top where the peanut butter and peanuts are otherwise they’ll fall off", + "Allow chocolate to harden & cool fully before enjoying it!", + "Peanut Butter & Jelly Stuffed Dates", + "Cut date in half lengthwise", + "Add ½ tsp peanut butter to the center followed by ½ tsp jelly", + "Enjoy!", + "Honey Coconut Peanut Butter Dates", + "Cut date in half lengthwise", + "Add ½ tsp peanut butter to the center followed by a drizzle of honey", + "Add some crushed coconut chips on top", + "Enjoy!", + "Goat Cheese Peanut Butter Dates", + "Cut date in half lengthwise", + "Add ½ tsp peanut butter to the center followed by ½ tsp goat cheese", + "Top with thinly sliced green onions", + "Enjoy!", + "Elvis Stuffed Dates", + "Cut date in half lengthwise", + "Add ½ tsp peanut butter to the center followed by a pinch of crushed banana chips and bacon bits", + "Enjoy!" + ], + "category": "Appetizer", + "yields": "4 servings", + "description": "This peanut butter stuffed dates recipe comes in five different variations! Learn how to make Snickers peanut butter dates with melted chocolate in addition to sweet and savory flavors like goat cheese, bacon, coconut, and honey.", + "total_time": 2, + "prep_time": 2, + "cuisine": "American", + "nutrients": { + "servingSize": "1 g", + "calories": "42 kcal", + "fatContent": "1 g", + "unsaturatedFatContent": "1 g", + "carbohydrateContent": "8 g", + "sugarContent": "6 g", + "proteinContent": "1 g", + "sodiumContent": "14 mg", + "fiberContent": "1 g" + }, + "image": "https://colleenchristensennutrition.com/wp-content/uploads/2021/11/a-variety-of-peanut-butter-dates.jpg" +} diff --git a/tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_2.testhtml b/tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_2.testhtml new file mode 100644 index 000000000..4fb808c82 --- /dev/null +++ b/tests/test_data/colleenchristensennutrition.com/colleenchristensennutrition_2.testhtml @@ -0,0 +1,1602 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Peanut Butter Stuffed Dates | 5 Ways! - Colleen Christensen Nutrition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
different variations of stuffed dates on white surface with jelly, nuts, peanut butter, goat cheese, coconut
+ + +

Peanut Butter Stuffed Dates | 5 Ways!

+ +
+
This peanut butter stuffed dates recipe comes in five different variations! Learn how to make Snickers peanut butter dates with melted chocolate in addition to sweet and savory flavors like goat cheese, bacon, coconut, and honey.
+
Servings 4 servings
Prep Time 2 minutes
+
+ +
+ + + +
+
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/cookiesandcups.com/cookiesandcups_1.json b/tests/test_data/cookiesandcups.com/cookiesandcups_1.json new file mode 100644 index 000000000..1b4599d42 --- /dev/null +++ b/tests/test_data/cookiesandcups.com/cookiesandcups_1.json @@ -0,0 +1,56 @@ +{ + "author": "Shelly", + "canonical_url": "https://cookiesandcups.com/brown-sugar-pancakes/", + "site_name": "Cookies and Cups", + "host": "cookiesandcups.com", + "language": "en-US", + "title": "Brown Sugar Pancakes", + "ingredients": [ + "2 cups all purpose flour", + "2 tablespoons baking powder", + "1 teaspoon kosher salt", + "3 tablespoons dark brown sugar", + "2 eggs", + "1 teaspoon vanilla", + "1 1/2 cups milk", + "5 tablespoons butter, melted", + "butter for frying" + ], + "instructions_list": [ + "In a large bowl whisk the flour, baking powder, salt and brown sugar together.", + "In separate bowl whisk the eggs, vanilla and milk together.", + "Add the wet ingredients into the dry and mix until just combined. Lastly mix in the melted butter and stir until combined, the batter will be slightly lumpy. Set the batter aside while you heat your griddle to medium-low heat. Melt a small pat of butter on the griddle and then scoop out 1/2 cup of pancake batter onto the hot griddle.", + "Cook until the edges are set and bubbles form on top of the pancake. Flip and cook until browned.", + "Serve warm." + ], + "category": "Pancakes", + "yields": "10 servings", + "description": "These Brown Sugar Pancakes are easy, fluffy, and thick! They're the BEST!", + "total_time": 13, + "cook_time": 8, + "prep_time": 5, + "cuisine": "Breakfast", + "cooking_method": "Skillet", + "ratings": 4.4, + "ratings_count": 28, + "nutrients": { + "servingSize": "2 pancakes", + "calories": "377 calories", + "fatContent": "14 g", + "saturatedFatContent": "7.9 g", + "transFatContent": "0 g", + "carbohydrateContent": "55.2 g", + "sugarContent": "9.3 g", + "proteinContent": "10.3 g", + "sodiumContent": "543.6 mg", + "fiberContent": "1.7 g", + "cholesterolContent": "106.4 mg" + }, + "image": "https://cookiesandcups.com/wp-content/uploads/2017/10/brownsugarpancakessyrup-266x266-225x225.jpg", + "keywords": [ + "best pancakes", + "brown sugar pancakes", + "fluffy pancake recipe", + "homemade pancakes" + ] +} diff --git a/tests/test_data/cookiesandcups.com/cookiesandcups_1.testhtml b/tests/test_data/cookiesandcups.com/cookiesandcups_1.testhtml new file mode 100644 index 000000000..17b3b4143 --- /dev/null +++ b/tests/test_data/cookiesandcups.com/cookiesandcups_1.testhtml @@ -0,0 +1,3766 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fluffy Brown Sugar Pancakes | The BEST Pancake Recipe EVER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+
+
+
+ + +
+ + +
+ + +
+ +
+
+
+
+ + +
+ + + +
+ + +

Brown Sugar Pancakes

+ +
+ + + +
+ + +
+
+ +

These Brown Sugar Pancakes are the best homemade pancakes ever! Made with simple ingredients, this easy pancake recipe makes soft, fluffy pancakes that cook perfectly every time.

+ + + + + +

Fluffy Brown Sugar Pancakes

+ + + +

If I could eat breakfast food all day long I absolutely would! And pancakes top my list of favorite breakfast foods! Today I’m sharing the only from scratch pancake recipe you will ever need, and I couldn’t be more excited about it!

+ + + + + + + +

Why From Scratch is the Way to Go!

+ + + +

There once was a time when making homemade pancakes from scratch scared me. I mean I wasn’t scared OF pancakes…but I was scared to MAKE them. It wasn’t some overly dramatic phobia…it was just that…well…every time I tried I epically failed.

+ + + +

Dang pancakes, with all their simplicity…I just couldn’t get the hang of it! I either uncooked and flipped too early, resulting in splattered batter errwherrr. OR I overcooked, burned and tried to disguise said burn with an unhealthy waterfall of maple syrup, fooling no one. Homemade pancakes were just one of those foods that I just preferred to leave up to the profesh staff at my local ihop. or is it iHop? APPLE YOU’RE RUINING MY LIFE!

+ + + +
A stack of pancakes with syrup and butter
+ + + +

Anywhooooo. Since I am not a quitter…except when it comes to diet and exercise…I grabbed a fun spatula and got back on the horse. Also, let’s just say that buying a fun spatula sometimes is all the incentive one needs. That and the promise of sugary carbs at the finish line.

+ + + +

ps- I know that’s “supposedly” an Omelet spatula, but let’s all move on.

+ + + +

This easy pancake recipe is a game changer, and I am confident to say this pancake recipe will be part of your Saturday morning routine!

+ + + +
A bowl with flour,brown sugar and a whisk.
+ + + +

What You’ll Need

+ + + +

I wasn’t kidding when I said these homemade pancakes just needed a handful of simple ingredients. Here’s what you’ll need:

+ + + +
  • All Purpose Flour – Any brand will do.
  • Baking Powder – This is what will help make your pancakes fluffy.
  • Kosher Salt – I like to use kosher salt for these. It is too easy to over salt if you use table salt.
  • Dark Brown Sugar – You can also use light brown sugar if that is what you have on hand.
  • Eggs
  • Vanilla – Use pure vanilla extract.
  • Milk – Any kind will work. Full fat, low fat, non fat and plant based milks are all great in pancakes.
  • Butter – You’ll need melted butter for the pancake batter, the more butter for frying.
+ + + +
Pancake batter cooking on the griddle.
+ + + +

How to Make Brown Sugar Pancakes

+ + + +

Ok let’s jump into making these pancakes:

+ + + +
  • Mix your dry ingredients. In a large bowl whisk together the flour, baking powder, salt and brown sugar.
  • Mix the wet ingredients. In a separate bowl, whisk together the eggs, vanilla and milk.
  • Add the wet ingredients to the dry ingredients. Mix until just combined.
  • Add the melted butter. Stir until combined. The batter will be a little lumpy but that’s ok. Set it aside and heat your griddle over medium-low heat.
  • Cook the pancakes. Melt a small pat of butter on your heated griddle, then scoop 1/2 cup of pancake batter onto the hot griddle. Cook until the edges are set and bubbles form on the top of the pancake. Flip the pancake and cook the other side until browned.
  • Serve!
+ + + +
A stack of pancakes.
+ + + +

Tips for Success

+ + + +

Not only have I mastered the pancake…I am inclined to say I am victorious in the pancake game. Let’s talk about why my brown sugar pancake recipe is the best pancake recipe!

+ + + +
  • Using brown sugar makes the whole situation a little more pulled together. Like all along the pancake was just crying for brown sugar and no one listened. They don’t necessary taste like brown sugar, there is just an added depth of flavor that sets this pancake recipe apart!
  • When you are cooking your pancakes, the key to to cook them low and slow. Actually medium-low and slow-ish. When you have your heat on too high the pancake brown without cooking all the way through, making flipping your pancake a messy situation.
+ + + +

Want to Make Fluffy Pancakes EVERY Time?

+ + + +

Here’s the secret to success: Butter. Doesn’t butter always make things better?

+ + + +
  • If you are going to make the BEST pancakes, I strongly encourage that you cook the pancakes on a griddle that has been greased with butter. Certainly there is nothing wrong with nonstick spray, or oil, but the butter just adds that extra delicious crisp on the outside of your pancake.
  • Also, this brown sugar pancakes recipe includes baking powder, which really keeps these pancakes light, fluffy, and thick!
+ + + +
A stack of pancakes with syrup and butter
+ + + +

Serving Suggestions

+ + + +

When you are done making your pancakes, you will have is a gorgeous stack of brown sugary goodness. I suggest topping them with a little extra butter…yes, more butter.

+ + + +

And a healthy drizzle of real maple syrup, of course!

+ + + +

Or an unhealthy drizzle. No judgy.

+ + + +

More Breakfast Ideas

+ + + + + + +Print
+ +clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon +
+
+
+
+

Brown Sugar Pancakes

+
+
+
+ 5 Stars 4 Stars 3 Stars 2 Stars 1 Star + 4.4 from 28 reviews +
+
+
+
+
    +
  • + Author: Cookies & Cups
  • +
  • + + Prep Time: 5 minutes
  • +
  • + + Cook Time: 8 minutes
  • +
  • + + Total Time: 13 minutes
  • +
  • + + Yield: makes about 10 pancakes 1x
  • +
  • + + Category: Pancakes
  • +
  • + + Method: Skillet
  • +
  • + + Cuisine: Breakfast
  • +
+
+ +
+
+ + + + Print +
+
+ + + +
+
+
+ + +
+ +
+
+ +
+

Description

+
+

These Brown Sugar Pancakes are easy, fluffy, and thick! They’re the BEST!

+
+
+ +
+ +
+
+
+

Ingredients

+
+
+ + Scale + +
+
+
+
    +
  • 2 cups all purpose flour
  • +
  • 2 tablespoons baking powder
  • +
  • 1 teaspoon kosher salt
  • +
  • 3 tablespoons dark brown sugar
  • +
  • 2 eggs
  • +
  • 1 teaspoon vanilla
  • +
  • 1 1/2 cups milk
  • +
  • 5 tablespoons butter, melted
  • +
  • butter for frying
  • +
+
+
+ +
+ +
+
+

Instructions

+
+
+
    +
  1. In a large bowl whisk the flour, baking powder, salt and brown sugar together.
  2. +
  3. In separate bowl whisk the eggs, vanilla and milk together.
  4. +
  5. Add the wet ingredients into the dry and mix until just combined. Lastly mix in the melted butter and stir until combined, the batter will be slightly lumpy. Set the batter aside while you heat your griddle to medium-low heat. Melt a small pat of butter on the griddle and then scoop out 1/2 cup of pancake batter onto the hot griddle.
  6. +
  7. Cook until the edges are set and bubbles form on top of the pancake. Flip and cook until browned.
  8. +
  9. Serve warm.
  10. +
+
+
+ + +
+ + + +
+

Notes

+
+

Serve warm

+
+
+ + + +
+

Nutrition

+
    +
  • Serving Size: 2 pancakes
  • +
  • Calories: 377
  • +
  • Sugar: 9.3 g
  • +
  • Sodium: 543.6 mg
  • +
  • Fat: 14 g
  • +
  • Carbohydrates: 55.2 g
  • +
  • Protein: 10.3 g
  • +
  • Cholesterol: 106.4 mg
  • +
+
+ + + +
+ + +

Want To Save This Recipe?

Find more recipes like this:

+ + +
+
+ + +
+ + +
+ + + +
+ + +
+

Rate this recipe and share a comment

Your email address will not be published. Required fields are marked *

+ Recipe rating + 5 Stars 4 Stars 3 Stars 2 Stars 1 Star
+

+ +
+ +

+ + + + I accept the Privacy Policy + +

+

+ +

+ + +
+ + +

+ 90 comments on “Brown Sugar Pancakes”

+ + +
    +
  1. + +
    + +
    +

    Overall, great recipe but batter does come out too thick so it is easy for outside to burn and have a raw center. Added some water after first two test pancakes but milk works too.

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +
    + Reply
    +
    +
    + +
  2. +
  3. + +
    + +
    +

    I would say this recipe is good for beginners to make but the taste was quite underwhelming by itself. I would recommend auto add more sugar or even vanilla essence to the initial batter.

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +
    + Reply
    +
    +
    + +
  4. +
  5. + +
    + +
    +

    TRUST THE PROCESS.
    +I made two wonky- shaped pancakes because the batter was so thick so I added milk and the initial batter was definitely better and more fluffy!!

    +

    The only thing I changed was I used twice the sugar but I would do 3 times the amount next time. I could taste a subtle sweetness but not brown sugar sweetness.

    +

    I dont think it is right for the author(?) to assume that everyone adds syrup to their pancakes and that’s why she said she didnt add more sugar to this recipe. I for one DONT EVER put syrup on my pancakes that’s why I added twice the amount based off another review and now I wished I added more.

    +

    And also to address another review that said the baking powder made the batter taste bitter, that is untrue. I used baking powder thats best by March 2022 and it totally didnt affect the taste. So no, old baking powder is just fine.

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +
    + Reply
    +
    +
    + +
  6. +
  7. + +
    +
    +
    +
    Maisy H
    +
    +
    +

    This recipe is AWESOME! I loved that if was so buttery warm and fluffy.

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +
    + Reply
    +
    +
    + +
  8. +
  9. + +
    +
    +
    +
    Bee Burch
    +
    +
    +

    Sweet. Soooo soft outside and inside! Best pancakes I’ve had in years!

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +
    + Reply
    +
    +
    + +
  10. +
  11. + +
    + +
    +

    These are spectacular! I’ve been making different homemade pancakes for years, and these turned out AMAZING! So great that I am posting a comment- perhaps a first for me! I did sprinkle in a bit of cinnamon and pumpkin spice.

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +
    + Reply
    +
    +
    + +
      +
    1. + + + +
    2. +
    3. + + + +
        +
      1. + + + +
      2. +
      +
    4. +
    +
  12. +
  13. + +
    + +
    +

    I’m a sugar lover so I did heaping cups of brown sugar. Also used oat milk instead of regular and the texture stayed light and fluffy! Was unsure about the baking powder amount but trust the process!

    +
    + Reply
    +
    +
    + +
  14. +
  15. + +
    + +
    +

    I substituted the vanilla for a 1/4 tsp of almond extract and it was delicious! Love this recipe.

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +
    + Reply
    +
    +
    + +
  16. +
  17. + +
    + +
    +

    I just made them! I didn’t have kosher salt, so risked using regular salt. I also added a table spoon of Splenda and chocolate chips! This is my first time making homemade o pancakes and the kids loved them. I had just enough butter to mix in. I ended up spraying Pam butter on the pan though.

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +
    + Reply
    +
    +
    + +
  18. +
+ + + + + +
+
+ + +
+ + +
+ +
+ + +
+
+ + + + +
+
+
+ + + Scroll to Top +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/cookiesandcups.com/cookiesandcups_2.json b/tests/test_data/cookiesandcups.com/cookiesandcups_2.json new file mode 100644 index 000000000..a45e6fd28 --- /dev/null +++ b/tests/test_data/cookiesandcups.com/cookiesandcups_2.json @@ -0,0 +1,80 @@ +{ + "author": "Shelly", + "canonical_url": "https://cookiesandcups.com/strawberry-buckle/", + "site_name": "Cookies and Cups", + "host": "cookiesandcups.com", + "language": "en-US", + "title": "Strawberry Buckle", + "ingredients": [ + "1/2 cup butter, room temperature", + "3/4 cup granulated sugar", + "1 teaspoon vanilla extract", + "2 large eggs", + "1/2 teaspoon kosher salt", + "1/2 teaspoon baking powder", + "Zest of one lemon (about 1 tablespoon)", + "2 cups all-purpose flour", + "1/2 cup milk", + "1 pound strawberries, coarsely chopped", + "6 tablespoons butter, room temperature, cubed", + "1 cup all-purpose flour", + "1/4 cup light brown sugar", + "1/4 teaspoon kosher salt", + "Optional: powdered sugar to dust on top" + ], + "ingredient_groups": [ + { + "ingredients": [ + "1/2 cup butter, room temperature", + "3/4 cup granulated sugar", + "1 teaspoon vanilla extract", + "2 large eggs", + "1/2 teaspoon kosher salt", + "1/2 teaspoon baking powder", + "Zest of one lemon (about 1 tablespoon)", + "2 cups all-purpose flour", + "1/2 cup milk", + "1 pound strawberries, coarsely chopped" + ], + "purpose": "Cake" + }, + { + "ingredients": [ + "6 tablespoons butter, room temperature, cubed", + "1 cup all-purpose flour", + "1/4 cup light brown sugar", + "1/4 teaspoon kosher salt", + "Optional: powdered sugar to dust on top" + ], + "purpose": "Topping" + } + ], + "instructions_list": [ + "Preheat the oven to 350°F.", + "Grease a 10-inch cast iron skillet (or 10-inch Springform pan) with butter and set aside.", + "In the bowl of your stand mixer fitted with paddle attachment, mix butter and sugar for 2 minutes on medium speed. Add in the eggs, vanilla, salt, baking powder, and lemon zest. Mix for 1 minute until combined, scraping the sides of the bowl as necessary.", + "Turn the mixer to low and add in the flour and milk in alternating increments, beginning and ending with flour, mixing until just combined.", + "Stir in the strawberries and spread into the prepared pan.", + "Place all the topping ingredients into a medium bowl. Using a pastry cutter or fork mix ingredients together until they resemble coarse sand. Use your hands to squeeze the mixture into large crumbs. Sprinkle on top of the batter.", + "Bake for 45-50 minutes until a toothpick inserted in the center comes out clean.", + "Dust with powdered sugar, if desired." + ], + "category": "Dessert", + "yields": "10 servings", + "description": "This easy strawberry buckle is an old-fashioned dessert made with fresh strawberries and a sweet crumble topping. Baked in a skillet so it's crisp outside and soft and buttery inside!", + "total_time": 65, + "cook_time": 50, + "prep_time": 15, + "cuisine": "American", + "cooking_method": "Oven", + "equipment": [ + "cast iron skillet", + "Springform pan", + "stand mixer", + "paddle attachment" + ], + "image": "https://cookiesandcups.com/wp-content/uploads/2016/01/strawberry-buckle-14-225x225.jpg", + "keywords": [ + "strawberry buckle" + ] +} diff --git a/tests/test_data/cookiesandcups.com/cookiesandcups_2.testhtml b/tests/test_data/cookiesandcups.com/cookiesandcups_2.testhtml new file mode 100644 index 000000000..f3af0c3f4 --- /dev/null +++ b/tests/test_data/cookiesandcups.com/cookiesandcups_2.testhtml @@ -0,0 +1,1997 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Strawberry Buckle | Cookies and Cups + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+
+
+
+ + +
+ + +
+ + +
+ +
+
+
Cookies & Cups > Recipes > Dessert > Cakes > Strawberry Buckle
+
+ + +
+ + + +
+ + +

Strawberry Buckle

+ +
+ + + +
+ + +
+
+ +

This strawberry buckle is a moist, tender cake recipe with juicy fresh strawberries and a sweet crumble top. It’s an old-fashioned dessert that’s quick and easy to make in a skillet! The outside crisps up, while the inside stays soft and buttery.

+ + + +

Looking for delicious treats to make in strawberry season? Check out more of my favorite strawberry recipes.

+ + + + + +

Why You’ll Love This Strawberry Buckle Recipe

+ + + +

This strawberry buckle is a lot like a coffee cake, baked with juicy fresh berries so that the cake falls or “buckles” under the weight of the fruit. I love an old-timey dessert, and this one is perfect for strawberry season! Here’s what makes it the best:

+ + + +
    +
  • Soft and buttery. This strawberry buckle recipe has all the ease of a cobbler, with the soft and buttery crumb of an ultra-moist coffee cake
  • + + + +
  • Made in a skillet. The thick batter is studded with chopped fresh strawberries and bakes up easily in a skillet. It leaves the edges crispy while keeping the inside moist and tender.
  • + + + +
  • Easy to make. Mix the batter in minutes, and then bake. This buckle recipe needs one bowl, no mixer, and very little effort. Waiting for this cake to cool is the hardest part!
  • +
+ + + +
Ingredients for a strawberry buckle with text labels overlaying each ingredient.
+ + + +

Ingredients You’ll Need

+ + + +

You can make this strawberry buckle with just a few pantry ingredients. Below are some notes. Scroll to the recipe card after the post for a printable list with amounts.

+ + + +
    +
  • Butter – Brought to room temperature. You can also replace butter with oil if you’d like.
  • + + + +
  • Dry Ingredients – All-purpose flour, sugar, baking powder, and salt. I use granulated sugar, but you can also use light brown sugar.
  • + + + +
  • Vanilla and Eggs – Like the butter, I recommend letting the eggs come to room temperature. You’ll also want to use real vanilla and not imitation.
  • + + + +
  • Lemon Zest – Optional, but I love fresh lemon zest alongside the strawberry flavors in this dessert.
  • + + + +
  • Milk – You can use whole milk, 2% milk, or a dairy-free alternative if needed.
  • + + + +
  • Strawberries – Washed, hulled, and coarsely chopped. I cut each berry into quarters for larger chunks. You can also make this cake with frozen strawberries, just be sure to let them thaw fully and pat them dry with paper towels.
  • + + + +
  • Crumble – The crumble topping is easy to make with butter, flour, brown sugar, and a pinch of salt. It’s the same streusel topping that I use for my blueberry cobbler bread and crumb cake recipes.
  • +
+ + + +

How to Make a Strawberry Buckle

+ + + +

This strawberry buckle comes together very easily and it bakes up deliciously crisp and tender in my cast iron skillet, which I love. Follow this easy step-by-step, and remember to scroll to the recipe card for printable instructions.

+ + + + + + + +
    +
  • Mix the batter. Start by creaming butter and sugar, and mix in the eggs, vanilla, salt, and baking powder. Stir in the lemon zest, then add the flour and milk. Finally, fold in your strawberries.
  • +
+ + + + + + + +
    +
  • Assemble. Add the cake batter to a greased 10” oven-safe skillet. In a bowl, cut together the crumble ingredients. Sprinkle the crumble over the batter.
  • + + + +
  • Bake. Pop the whole skillet into the oven and bake for 45-50 minutes at 350ºF until the top is golden. Let the buckle cool, and then give it a dusting of powdered sugar before serving.
  • +
+ + + +

What If I Don’t Have a Skillet?

+ + + +

If you don’t have an oven-safe skillet, you can still make this strawberry buckle in a springform pan, or a 9” round pan. You’ll just need to increase the baking time a little. Test the cake for doneness using a toothpick. If it comes out clean, your buckle is baked!

+ + + +
Close up view of a baked strawberry buckle in a skillet.
+ + + +

Easy Variations

+ + + +
    +
  • Change up the fruit. You can make a buckle using any fruit that’s in season. Use fresh or frozen blueberries, raspberries, or blackberries. A peach buckle would also be delicious in the summer (peach cobbler vibes, anyone?). I can’t wait to make an apple buckle in the fall!
  • + + + +
  • Add icing. I usually stick with a simple dusting of powdered sugar on top of the buttery crumble. But, if you’d like, drizzle over a simple sweet icing like the one I use for my strawberry pound cake.
  • + + + +
  • Add some spice. Instead of lemon zest, warm up the flavors in this strawberry buckle recipe with a few pinches of ground cinnamon. 
  • +
+ + + +
Two strawberry buckle slices on plates, next to the rest of the buckle in a skillet.
+ + + +

Serving Suggestions

+ + + +

This strawberry buckle makes an easy last-minute dessert when we’re expecting friends and family. It’s great served with coffee or tea, or you can enjoy slices with a scoop of vanilla ice cream for a tasty summer treat. If I have leftover strawberries, I’ll turn them into homemade strawberry syrup to drizzle on top!

+ + + +
Overhead view of strawberry buckle slices served on plates, next to the rest of the dessert in a skillet surrounded by fresh berries.
+ + + +

How to Store

+ + + +
    +
  • To store. Store any leftover strawberry buckle in an airtight container on the counter for up to 3 days.
  • + + + +
  • Freeze. You can also freeze this strawberry cake either whole or in slices. Wrap it tightly with a double layer of plastic wrap and keep it frozen for up to 2 months. You’ll need to defrost the strawberry buckle at room temperature before serving.
  • +
+ + + +

More Strawberry Recipes

+ + + + + + +Print
+ +clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon +
+
+ A strawberry buckle slice on a plate, with the rest of the buckle in a skillet in the background.
+
+

Strawberry Buckle

+
+
+
+ 5 Stars 4 Stars 3 Stars 2 Stars 1 Star + No reviews +
+
+
+
+
    +
  • + Author: Shelly
  • +
  • + + Prep Time: 15 minutes
  • +
  • + + Cook Time: 50 minutes
  • +
  • + + Total Time: 1 hour 5 minutes
  • +
  • + + Yield: 10 servings 1x
  • +
  • + + Category: Dessert
  • +
  • + + Method: Oven
  • +
  • + + Cuisine: American
  • +
+
+ +
+
+ + + + Print +
+
+ + + +
+
+
+ + +
+ +
+
+ +
+

Description

+
+

This easy strawberry buckle is an old-fashioned dessert made with fresh strawberries and a sweet crumble topping. Baked in a skillet so it’s crisp outside and soft and buttery inside!

+
+
+ +
+ +
+
+
+

Ingredients

+
+
+ + Scale + +
+
+
+

Cake

+
    +
  • 1/2 cup butter, room temperature
  • +
  • 3/4 cup granulated sugar
  • +
  • 1 teaspoon vanilla extract
  • +
  • 2 large eggs
  • +
  • 1/2 teaspoon kosher salt
  • +
  • 1/2 teaspoon baking powder
  • +
  • Zest of one lemon (about 1 tablespoon)
  • +
  • 2 cups all-purpose flour
  • +
  • 1/2 cup milk
  • +
  • 1 pound strawberries, coarsely chopped
  • +
+

Topping

+
    +
  • 6 tablespoons butter, room temperature, cubed
  • +
  • 1 cup all-purpose flour
  • +
  • 1/4 cup light brown sugar
  • +
  • 1/4 teaspoon kosher salt
  • +
  • Optional: powdered sugar to dust on top
  • +
+
+
+ +
+ +
+
+

Instructions

+
+
+
    +
  1. Preheat the oven to 350°F.
  2. +
  3. Grease a 10-inch cast iron skillet (or 10-inch Springform pan) with butter and set aside.
  4. +
  5. In the bowl of your stand mixer fitted with paddle attachment, mix butter and sugar for 2 minutes on medium speed. Add in the eggs, vanilla, salt, baking powder, and lemon zest. Mix for 1 minute until combined, scraping the sides of the bowl as necessary.
  6. +
  7. Turn the mixer to low and add in the flour and milk in alternating increments, beginning and ending with flour, mixing until just combined.
  8. +
  9. Stir in the strawberries and spread into the prepared pan.
  10. +
  11. Place all the topping ingredients into a medium bowl. Using a pastry cutter or fork mix ingredients together until they resemble coarse sand. Use your hands to squeeze the mixture into large crumbs. Sprinkle on top of the batter.
  12. +
  13. Bake for 45-50 minutes until a toothpick inserted in the center comes out clean.
  14. +
  15. Dust with powdered sugar, if desired.
  16. +
+
+
+ + +
+ + + +
+

Notes

+
+
    +
  • Store airtight for up to 3 days.
  • +
+
+
+ + + + + + +
+ + +

Want To Save This Recipe?

Find more recipes like this:

+ + +
+
+ + +
+ + +
+ + + +
+ + +
+

Rate this recipe and share a comment

Your email address will not be published. Required fields are marked *

+ Recipe rating + 5 Stars 4 Stars 3 Stars 2 Stars 1 Star
+

+ +
+ +

+ + + + I accept the Privacy Policy + +

+

+ +

+ + +
+ + +

+ 3 comments on “Strawberry Buckle”

+ +
    +
  1. + + + +
  2. +
  3. + +
    +
    +
    +
    cookbook queen
    +
    +
    +

    I kinda just want to sprinkle my whole self with that crumb topping. I love this so much!!

    +
    + Reply
    +
    +
    + +
  4. +
+ + + + +
+
+ + +
+ + +
+ +
+ + +
+
+ + + + +
+
+
+ + + Scroll to Top +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 3087f5fc7db24285f8bec5daad7ff8526b5c1300 Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Tue, 15 Oct 2024 14:58:26 -0700 Subject: [PATCH 05/19] Adds support for thefoodietakesflight (#1262) --- README.rst | 1 + recipe_scrapers/__init__.py | 2 + recipe_scrapers/thefoodietakesflight.py | 16 + .../thefoodietakesflight_1.json | 78 + .../thefoodietakesflight_1.testhtml | 2007 ++++++++++++++ .../thefoodietakesflight_2.json | 172 ++ .../thefoodietakesflight_2.testhtml | 2456 +++++++++++++++++ 7 files changed, 4732 insertions(+) create mode 100644 recipe_scrapers/thefoodietakesflight.py create mode 100644 tests/test_data/thefoodietakesflight.com/thefoodietakesflight_1.json create mode 100644 tests/test_data/thefoodietakesflight.com/thefoodietakesflight_1.testhtml create mode 100644 tests/test_data/thefoodietakesflight.com/thefoodietakesflight_2.json create mode 100644 tests/test_data/thefoodietakesflight.com/thefoodietakesflight_2.testhtml diff --git a/README.rst b/README.rst index 3a63252a2..35aafdb83 100644 --- a/README.rst +++ b/README.rst @@ -405,6 +405,7 @@ Scrapers available for: - `https://www.thecookierookie.com/ `_ - `https://thecookingguy.com/ `_ - `https://theexpertguides.com/ `_ +- `https://thefoodietakesflight.com/ `_ - `https://theglutenfreeaustrian.com/ `_ - `https://thehappyfoodie.co.uk/ `_ - `https://thekitchencommunity.org/ `_ diff --git a/recipe_scrapers/__init__.py b/recipe_scrapers/__init__.py index cef1cba3d..1bfb9ef65 100644 --- a/recipe_scrapers/__init__.py +++ b/recipe_scrapers/__init__.py @@ -354,6 +354,7 @@ from .thecookierookie import TheCookieRookie from .thecookingguy import TheCookingGuy from .theexpertguides import TheExpertGuides +from .thefoodietakesflight import TheFoodieTakesFlight from .theglutenfreeaustrian import TheGlutenFreeAustrian from .thehappyfoodie import TheHappyFoodie from .thekitchencommunity import TheKitchenCommunity @@ -545,6 +546,7 @@ TasteAtlas.host(): TasteAtlas, TheCookieRookie.host(): TheCookieRookie, TheCookingGuy.host(): TheCookingGuy, + TheFoodieTakesFlight.host(): TheFoodieTakesFlight, TheGlutenFreeAustrian.host(): TheGlutenFreeAustrian, TheLoopyWhisk.host(): TheLoopyWhisk, ThePalatableLife.host(): ThePalatableLife, diff --git a/recipe_scrapers/thefoodietakesflight.py b/recipe_scrapers/thefoodietakesflight.py new file mode 100644 index 000000000..beb894479 --- /dev/null +++ b/recipe_scrapers/thefoodietakesflight.py @@ -0,0 +1,16 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients + + +class TheFoodieTakesFlight(AbstractScraper): + @classmethod + def host(cls): + return "thefoodietakesflight.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".wprm-recipe-ingredient-group h4", + ".wprm-recipe-ingredient", + ) diff --git a/tests/test_data/thefoodietakesflight.com/thefoodietakesflight_1.json b/tests/test_data/thefoodietakesflight.com/thefoodietakesflight_1.json new file mode 100644 index 000000000..c36010aa6 --- /dev/null +++ b/tests/test_data/thefoodietakesflight.com/thefoodietakesflight_1.json @@ -0,0 +1,78 @@ +{ + "author": "Jeeca", + "canonical_url": "https://thefoodietakesflight.com/hot-pot-sauce/", + "site_name": "The Foodie Takes Flight", + "host": "thefoodietakesflight.com", + "language": "en-US", + "title": "Chinese Hot Pot Sauce", + "ingredients": [ + "2 tbsp Chinese sesame paste", + "2 tbsp soy sauce", + "1-2 tbsp Chinese black vinegar or rice vinegar", + "1 tbsp vegetarian oyster sauce", + "1 tbsp sugar (adjust to taste)", + "1/2 tbsp sesame oil", + "1 tsp roasted sesame seeds", + "1/2 to 1 tbsp chili oil (adjust to desired heat)", + "1 tbsp doubanjiang or fermented chili bean paste (optional)", + "1/2 to 1 tbsp minced garlic", + "Chopped green onions or scallions", + "Chopped fresh cilantro", + "2-3 tbsp water (adjust to desired consistency)" + ], + "ingredient_groups": [ + { + "ingredients": [ + "2 tbsp Chinese sesame paste", + "2 tbsp soy sauce", + "1-2 tbsp Chinese black vinegar or rice vinegar", + "1 tbsp vegetarian oyster sauce", + "1 tbsp sugar (adjust to taste)", + "1/2 tbsp sesame oil", + "1 tsp roasted sesame seeds", + "1/2 to 1 tbsp chili oil (adjust to desired heat)", + "1 tbsp doubanjiang or fermented chili bean paste (optional)", + "1/2 to 1 tbsp minced garlic", + "Chopped green onions or scallions", + "Chopped fresh cilantro", + "2-3 tbsp water (adjust to desired consistency)" + ], + "purpose": "SAUCE INGREDIENTS" + } + ], + "instructions_list": [ + "Simply mix everything together. This sauce is customizable depending on your preference! So feel free to add more or less of everything depending on what you like.", + "Check out how to make Chinese hot pot at home here!" + ], + "category": "Condiments,Sauces", + "yields": "2 servings", + "description": "This Chinese Hotpot Sauce is an integral part of the hot pot experience. A lot of Chinese hot pot or shabu-shabu places offer sauce stations where you can prepare your own dipping sauce. My hot pot sauce is a rich mix of Chinese sesame paste, Chinese black vinegar, soy sauce, veg oyster sauce, sugar, chili oil, garlic, green onions, and a few other ingredients that make this sauce incredibly fragrant and tasty. Dipping pieces of cooked vegetables or tofu into this sauce is makes it so addicting.", + "total_time": 15, + "prep_time": 15, + "cuisine": "Asian,Chinese,East Asian,Hokkien", + "ratings": 5.0, + "ratings_count": 3, + "nutrients": { + "servingSize": "1 serving", + "calories": "199 kcal", + "fatContent": "16 g", + "saturatedFatContent": "2 g", + "unsaturatedFatContent": "13 g", + "carbohydrateContent": "12 g", + "sugarContent": "6 g", + "proteinContent": "5 g", + "sodiumContent": "1258 mg", + "fiberContent": "1 g" + }, + "image": "https://thefoodietakesflight.com/wp-content/uploads/2023/12/Vegan-Hotpot-or-Shabu-Shabu-Sauce-20-of-25-scaled.jpg", + "keywords": [ + "chinese food", + "chinese hot pot", + "chinese recipes", + "fresh mushrooms", + "fresh tofu", + "hot pot", + "king oyster mushrooms", + "soup recipes" + ] +} diff --git a/tests/test_data/thefoodietakesflight.com/thefoodietakesflight_1.testhtml b/tests/test_data/thefoodietakesflight.com/thefoodietakesflight_1.testhtml new file mode 100644 index 000000000..d7fd20955 --- /dev/null +++ b/tests/test_data/thefoodietakesflight.com/thefoodietakesflight_1.testhtml @@ -0,0 +1,2007 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Chinese Hot Pot Sauce - The Foodie Takes Flight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_data/thefoodietakesflight.com/thefoodietakesflight_2.json b/tests/test_data/thefoodietakesflight.com/thefoodietakesflight_2.json new file mode 100644 index 000000000..9ed883e68 --- /dev/null +++ b/tests/test_data/thefoodietakesflight.com/thefoodietakesflight_2.json @@ -0,0 +1,172 @@ +{ + "author": "Jeeca", + "canonical_url": "https://thefoodietakesflight.com/lemongrass-seitan-crispy-rice/", + "site_name": "The Foodie Takes Flight", + "host": "thefoodietakesflight.com", + "language": "en-US", + "title": "Vietnamese Lemongrass Seitan Crispy Rice", + "ingredients": [ + "1/2 cup warm vegetable broth (or water)", + "1/2-1 tbsp white miso paste ((see notes))", + "3/4 cup vital wheat gluten (, 100 g)", + "2 tbsp chickpea flour (, 20 g)", + "1 tbsp nutritional yeast", + "1/2 tbsp mushroom bouillon powder (optional, see notes)", + "1/2 tsp ground white pepper or black pepper", + "2-3 tbsp soy sauce (or to taste)", + "1-2 tbsp vegan fish sauce (to taste)", + "1-2 tbsp vegetarian oyster sauce", + "1/2 to 1 tbsp sugar (adjust to desired sweetness)", + "3-4 tbsp maple syrup (adjust to desired sweetness)", + "1 tbsp neutral oil (I used avocado oil)", + "2-3 tbsp room temperature water", + "Neutral cooking oil", + "1-2 cups cooked and cooled medium grain rice (jasmine rice works great)", + "1 tbsp neutral cooking oil", + "1 shallot (finely minced)", + "4 cloves garlic (minced)", + "1 tbsp minced lemongrass (I used frozen)", + "2 tbsp vegan fish sauce ((sub for light soy sauce or Yondu))", + "1 tbsp Chili Garlic Sauce ((Huy Fong or Lee Kum Kee))", + "2 tbsp sugar (, adjust to taste)", + "1 lime (, juiced)", + "2 cloves garlic (, minced)", + "1/2 cup coconut water", + "1 bird’s eye chili pepper (roughly chopped (optional for heat))", + "Salt ( to taste)", + "Sliced cucumber and tomatoes", + "Pickled carrots/radish", + "Fresh cilantro and other herbs like mint", + "Vegan Nuoc cham (or Vietnamese sauce/dressing)", + "Ginger scallion sauce (homemade recipe here)", + "Fried shallots" + ], + "ingredient_groups": [ + { + "ingredients": [ + "1/2 cup warm vegetable broth (or water)", + "1/2-1 tbsp white miso paste ((see notes))" + ], + "purpose": "WET" + }, + { + "ingredients": [ + "3/4 cup vital wheat gluten (, 100 g)", + "2 tbsp chickpea flour (, 20 g)", + "1 tbsp nutritional yeast", + "1/2 tbsp mushroom bouillon powder (optional, see notes)", + "1/2 tsp ground white pepper or black pepper" + ], + "purpose": "DRY" + }, + { + "ingredients": [ + "2-3 tbsp soy sauce (or to taste)", + "1-2 tbsp vegan fish sauce (to taste)", + "1-2 tbsp vegetarian oyster sauce", + "1/2 to 1 tbsp sugar (adjust to desired sweetness)", + "3-4 tbsp maple syrup (adjust to desired sweetness)", + "1 tbsp neutral oil (I used avocado oil)", + "2-3 tbsp room temperature water" + ], + "purpose": "SAUCE" + }, + { + "ingredients": [ + "Neutral cooking oil", + "1-2 cups cooked and cooled medium grain rice (jasmine rice works great)" + ], + "purpose": "CRISPY RICE" + }, + { + "ingredients": [ + "1 tbsp neutral cooking oil", + "1 shallot (finely minced)", + "4 cloves garlic (minced)", + "1 tbsp minced lemongrass (I used frozen)" + ], + "purpose": "FOR STIR-FRYING" + }, + { + "ingredients": [ + "2 tbsp vegan fish sauce ((sub for light soy sauce or Yondu))", + "1 tbsp Chili Garlic Sauce ((Huy Fong or Lee Kum Kee))", + "2 tbsp sugar (, adjust to taste)", + "1 lime (, juiced)", + "2 cloves garlic (, minced)", + "1/2 cup coconut water", + "1 bird’s eye chili pepper (roughly chopped (optional for heat))", + "Salt ( to taste)" + ], + "purpose": "TIFF'S VEGAN NUOC CHAM" + }, + { + "ingredients": [ + "Sliced cucumber and tomatoes", + "Pickled carrots/radish", + "Fresh cilantro and other herbs like mint", + "Vegan Nuoc cham (or Vietnamese sauce/dressing)", + "Ginger scallion sauce (homemade recipe here)", + "Fried shallots" + ], + "purpose": "FOR SERVING" + } + ], + "instructions_list": [ + "PREPARING THE SEITAN + SAUCE", + "Dilute the miso paste in warm water/veg broth.", + "Mix the dry ingredients together in a large bowl. Pour the broth mixture and mix well until there are no signs of dry flour.", + "Transfer the mixture on a flat surface. Knead for 3-4 minutes or until the seitan is bouncy — you can poke it with your finger and it should go back to its original state at once. Cover the seitan.", + "Leave the seitan to rest for at least 15 minutes.", + "Meanwhile, prepare the sauce. Mix everything together in a small bowl and adjust to desired taste.", + "Once the seitan has rested, transfer the seitan on a sheet of foil, flatten the seitan or shape it depending on what you like. Wrap the seitan on the foil.", + "Steam the seitan for 15-20 mins. After steaming, carefully unwrap the seitan and slice into thin 1/4 to 1/2-inch thick pieces.", + "CRISPY RICE", + "Heat an 8-inch non stick pan over medium heat. Spray or add some neutral oil to lightly coat the surface.", + "Once hot, add the rice. Using a spatula, press down on the rice to spread across the pan.", + "Leave to cook over medium heat for 3-4 minutes or until lightly brown. Carefully flip over and repeat for the other side.", + "LEMONGRASS SEITAN", + "Heat a large skillet or wok over medium heat.", + "Add oil. Once hot, add the minced shallot, garlic, and lemongrass. Stir-fry for 1 minute until aromatic. Pour the sauce and allow to come to a gentle simmer.", + "Add the sliced seitan and leave to simmer in the sauce for 5-6 minutes until the sauce is absorbed and turns into a thin glaze consistency.", + "TIFF'S NUOC CHAM", + "Mix everything together. Feel free to adjust to your desired taste.", + "TO SERVE", + "Place the crispy rice on a plate or large bowl.", + "Add the seitan then serve with sliced cucumber, tomatoes, cilantro, pickled carrot/radish, the vegan nuoc cham or Vietnamese sauce/dressing. Top with ginger scallion sauce and fried shallots, if desired.", + "To enjoy, pour a generous amount of the sauce then break apart a small portion of the rice to enjoy with the other components." + ], + "category": "Appetizer,Condiments,Main Course,Salad,Salads,Sauces,Side Dish,Sides", + "yields": "4 servings", + "description": "This lemongrass recipe is in collaboration with Tiff of @tifflovestofu and her latest newsletter Tiff’s Table! There are so many great flavors and textures in this recipe and it’s also easily customizable. Plus, it’s great for meal-prep!The homemade seitan is cooked with an aromatic blend of shallots, garlic, and lemongrass before being reduced in a sweet & savory sauce. The lemongrass seitan is served on a bed of crispy rice and paired with a Vietnamese sauce/dressing, pickled carrot, crunchy cucumber, tomato, and cilantro.", + "total_time": 105, + "cook_time": 45, + "prep_time": 60, + "cuisine": "Asian,Southeast Asian,Vietnamese", + "nutrients": { + "servingSize": "1 serving", + "calories": "353 kcal", + "fatContent": "8 g", + "saturatedFatContent": "1 g", + "unsaturatedFatContent": "7 g", + "transFatContent": "0.03 g", + "carbohydrateContent": "49 g", + "sugarContent": "20 g", + "proteinContent": "22 g", + "sodiumContent": "957 mg", + "fiberContent": "2 g" + }, + "image": "https://thefoodietakesflight.com/wp-content/uploads/2024/09/Lemongrass-Tempeh-Crispy-Rice-Bowl-20-of-77-scaled.jpg", + "keywords": [ + "cilantro", + "crispy rice paper", + "lemongrass", + "mock meat", + "nuoc cham", + "pickled carrot", + "seitan", + "seitan recipe", + "vietnamese salad", + "wheat gluten" + ] +} diff --git a/tests/test_data/thefoodietakesflight.com/thefoodietakesflight_2.testhtml b/tests/test_data/thefoodietakesflight.com/thefoodietakesflight_2.testhtml new file mode 100644 index 000000000..3dc7eeb28 --- /dev/null +++ b/tests/test_data/thefoodietakesflight.com/thefoodietakesflight_2.testhtml @@ -0,0 +1,2456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Vietnamese Lemongrass Seitan & Crispy Rice - The Foodie Takes Flight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 6bdc1e527fa23236b59f14fd786bc5da99027656 Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:03:45 -0700 Subject: [PATCH 06/19] Adds support for spainonafork (#1269) --- README.rst | 1 + recipe_scrapers/__init__.py | 2 + recipe_scrapers/spainonafork.py | 16 + .../spainonafork.com/spainonafork_1.json | 35 + .../spainonafork.com/spainonafork_1.testhtml | 1239 +++++++++++++++++ .../spainonafork.com/spainonafork_2.json | 97 ++ .../spainonafork.com/spainonafork_2.testhtml | 1013 ++++++++++++++ 7 files changed, 2403 insertions(+) create mode 100644 recipe_scrapers/spainonafork.py create mode 100644 tests/test_data/spainonafork.com/spainonafork_1.json create mode 100644 tests/test_data/spainonafork.com/spainonafork_1.testhtml create mode 100644 tests/test_data/spainonafork.com/spainonafork_2.json create mode 100644 tests/test_data/spainonafork.com/spainonafork_2.testhtml diff --git a/README.rst b/README.rst index 35aafdb83..de359e4e8 100644 --- a/README.rst +++ b/README.rst @@ -383,6 +383,7 @@ Scrapers available for: - `https://sobors.hu/ `_ - `https://www.southerncastiron.com/ `_ - `https://southernliving.com/ `_ +- `https://spainonafork.com/ `_ - `https://spendwithpennies.com/ `_ - `https://www.springlane.de `_ - `https://www.staysnatched.com/ `_ diff --git a/recipe_scrapers/__init__.py b/recipe_scrapers/__init__.py index 1bfb9ef65..e918d5f4c 100644 --- a/recipe_scrapers/__init__.py +++ b/recipe_scrapers/__init__.py @@ -332,6 +332,7 @@ from .sobors import SoBors from .southerncastiron import SouthernCastIron from .southernliving import SouthernLiving +from .spainonafork import SpainOnAFork from .spendwithpennies import SpendWithPennies from .springlane import Springlane from .staysnatched import StaySnatched @@ -542,6 +543,7 @@ RicettePerBimby.host(): RicettePerBimby, SandwhichTribunal.host(): SandwhichTribunal, SavoryNothings.host(): SavoryNothings, + SpainOnAFork.host(): SpainOnAFork, StrongrFastr.host(): StrongrFastr, TasteAtlas.host(): TasteAtlas, TheCookieRookie.host(): TheCookieRookie, diff --git a/recipe_scrapers/spainonafork.py b/recipe_scrapers/spainonafork.py new file mode 100644 index 000000000..3d27c114c --- /dev/null +++ b/recipe_scrapers/spainonafork.py @@ -0,0 +1,16 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients + + +class SpainOnAFork(AbstractScraper): + @classmethod + def host(cls): + return "spainonafork.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".wprm-recipe-ingredient-group h4", + ".wprm-recipe-ingredient", + ) diff --git a/tests/test_data/spainonafork.com/spainonafork_1.json b/tests/test_data/spainonafork.com/spainonafork_1.json new file mode 100644 index 000000000..190305911 --- /dev/null +++ b/tests/test_data/spainonafork.com/spainonafork_1.json @@ -0,0 +1,35 @@ +{ + "author": "Albert Bevia @ Spain on a Fork", + "canonical_url": "https://spainonafork.com/spanish-sangria-recipe/", + "site_name": "Spain on a Fork", + "host": "spainonafork.com", + "language": "en-US", + "title": "Homemade Spanish Sangria - Authentic Recipe", + "ingredients": [ + "1 750ML Bottle of Red Spanish Wine", + "1 Lemon", + "1 Orange", + "1 Peach", + "1 Apple", + "1/4 Cup Spanish Brandy", + "1 Cup Orange Juice (not from concentrate)", + "1/3 Cup White Sugar", + "1 Cinnamon Stick" + ], + "instructions_list": [ + "Thinly slice 1 orange and 1 lemon, add half of the orange slices and half of the lemon slices into a pitcher and reserve the other slices, cut 1 peach and 1 apple into small cubes and add all the cubed peaches and half the cubed apples to the pitcher, reserve the other cubed apples", + "Next add a 1/4 cup of a good quality brandy into the pitcher, 1 cup of non-concentrated orange juice and 1/3 cup of white sugar", + "Using a large wooden spoon, push down on the fruit to release all the juices and then mix everything together", + "Now add one 750 ml bottle of red wine into the pitcher, I recommend a young Rioja wine, then add 1 cinnamon stick, mix everything together and add the pitcher to the fridge for at least 2 hours to let all the flavors develop", + "Drizzle a little fresh lemon juice on the reserved apples (so they don´t brown) and add all the reserved fruit to the fridge", + "When ready to serve, stir the sangria around in the pitcher, then add some ice cubes to each serving glass, add some of the reserved cut apples into the glass, and pour in some sangria, add 1 orange and 1 lemon slice to each glass and serve", + "Enjoy!" + ], + "yields": "4 servings", + "total_time": 135, + "cook_time": 120, + "prep_time": 15, + "ratings": 5.0, + "ratings_count": 1, + "image": "https://i1.wp.com/spainonafork.com/wp-content/uploads/2017/09/sangria1-11.png?fit=750%2C750&ssl=1" +} diff --git a/tests/test_data/spainonafork.com/spainonafork_1.testhtml b/tests/test_data/spainonafork.com/spainonafork_1.testhtml new file mode 100644 index 000000000..5cb67098f --- /dev/null +++ b/tests/test_data/spainonafork.com/spainonafork_1.testhtml @@ -0,0 +1,1239 @@ + + + + + + + + + + + + + + + + + + + + + + Homemade Spanish Sangria Recipe - Authentic Recipe - Spain on a Fork + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ +Spain on a Fork > All Recipes > Tapas > Homemade Spanish Sangria Recipe
+
+
+ + +
+
+
+ +
+
+
+ + All Recipes, Tapas + / + September 4, 2017 + + +

Homemade Spanish Sangria Recipe

+
+
+

As we all know, nothing says Spain like a cold pitcher of sangria, it is the essence of Spanish culture, well, for a larger amount of the country, certain places like Cantabria or Galicia (among others) prefer a cold cider. This homemade Spanish sangria recipe is about as authentic as it gets.

+

Homemade Spanish Sangria Recipe
+I have played around with many different ingredients on this one, but this recipe is the one I have used for several years. Sipping on this sangria always reminds me of the summer days, sitting on the patio enjoying good times with friends and family, and always having a couple of pitchers in the fridge to keep the party going.

+

Homemade Spanish Sangria Recipe
+So, If your searching for the perfect party cocktail that is refreshing, fruity and has a bold flavor, sangria is the drink you´ve been looking for. Watch the video below on how to make this homemade Spanish sangria recipe or print out the recipe card below, and be prepared to create the perfect cocktail for friends and family. Salud!

+

Homemade Spanish Sangria Recipe

+

Watch the Video Below on How to Make Homemade Spanish Sangria

+

+

+
+
+
+
5 from 1 vote
Print +
+
+

Homemade Spanish Sangria - Authentic Recipe

+
+
+
+
+
+
+ Prep Time 15 minutes
+
+ Cook Time 2 hours
+
+ Total Time 2 hours 15 minutes
+
+
+
+ Servings 4 +
+
+ Author Albert Bevia @ Spain on a Fork +
+
+ +
+

Ingredients

+
+
    +
  • + 1 750ML Bottle of Red Spanish Wine +
  • +
  • + 1 Lemon +
  • +
  • + 1 Orange +
  • +
  • + 1 Peach +
  • +
  • + 1 Apple +
  • +
  • + 1/4 Cup Spanish Brandy +
  • +
  • + 1 Cup Orange Juice (not from concentrate) +
  • +
  • + 1/3 Cup White Sugar +
  • +
  • + 1 Cinnamon Stick +
  • +
+
+
+
+

Instructions

+
+
    +
  1. +
    Thinly slice 1 orange and 1 lemon, add half of the orange slices and half of the lemon slices into a pitcher and reserve the other slices, cut 1 peach and 1 apple into small cubes and add all the cubed peaches and half the cubed apples to the pitcher, reserve the other cubed apples
    +
  2. +
  3. +
    Next add a 1/4 cup of a good quality brandy into the pitcher, 1 cup of non-concentrated orange juice and 1/3 cup of white sugar
    +
  4. +
  5. +
    Using a large wooden spoon, push down on the fruit to release all the juices and then mix everything together
    +
  6. +
  7. +
    Now add one 750 ml bottle of red wine into the pitcher, I recommend a young Rioja wine, then add 1 cinnamon stick, mix everything together and add the pitcher to the fridge for at least 2 hours to let all the flavors develop
    +
  8. +
  9. +
    Drizzle a little fresh lemon juice on the reserved apples (so they don´t brown) and add all the reserved fruit to the fridge
    +
  10. +
  11. +
    When ready to serve, stir the sangria around in the pitcher, then add some ice cubes to each serving glass, add some of the reserved cut apples into the glass, and pour in some sangria, add 1 orange and 1 lemon slice to each glass and serve
    +
  12. +
  13. +
    Enjoy!
    +
  14. +
+
+
+
+

Recipe Notes

+

If you need any of the above ingredients to make this recipe, you can purchase them through this Amazon Affiliate Link Shop for Ingredients and get them delivered right to your door!

+
+
+

+Disclosure: At Spain on a Fork, we offer affiliate links to help you find what you need to re-create our recipes. If you like what we do, you can support us through our chosen links, which earn us a commission, but you still pay the same price. Learn more here.

+

 

+
+
+
+ +
+
+
+
+ Share: + + + + + + + + + + + + + + + +
+ +
+
+
+
+
+ + +
+
+ +

22 Comments

+
    +
  1. +
    +
    + + +
    +
    +
    + Monica
    +

    I plan to try your recipe to celebrate the warmer weather here in Valencia. What locally available brandy do you recommend that is good quality?

    +

    Thanks,

    +

    Monica

    + 01 . Apr . 2023 + +
    +
    +
      +
    • +
      +
      + + +
      +
      +
      + Spain on a Fork
      +

      My favorite is Cardenal Mendoza, you can get it a el gourmet in corte ingles 🙂 Much love!

      + 01 . Apr . 2023 + +
      +
      +
    • +
    +
  2. +
  3. +
    +
    + + +
    +
    +
    + Jeff
    +

    5 stars
    +This is a great recipe! Fresh and lively with a subtle deeper complexity. I’ll be making this one regularly. My local peaches were pretty sad but the available nectarines were good so I subbed some in. Paired well with a sunny patio and some good friends.

    + 27 . Aug . 2022 + +
    +
    +
      +
    • +
      +
      + + +
      +
      +
      + Spain on a Fork
      +

      So happy to hear that!! Much love 🙂

      + 28 . Aug . 2022 + +
      +
      +
    • +
    +
  4. +
  5. +
    +
    + + +
    +
    +
    + Rita. C Donnell
    +

    Great!! You have presented an excellent sangria recipe. I love your cooking idea. I learned a nice issues. I could not handle greed to apply your idea. The food color is so nice. Have you used any artificial color? Thanks for your nice sharing.

    + 13 . Mar . 2020 + +
    +
    +
      +
    • +
      +
      + + +
      +
      +
      + Spain on a Fork
      +

      no artifical colors here, everything is natural 🙂 thanks for the comment

      + 13 . Mar . 2020 + +
      +
      +
    • +
    +
  6. +
  7. +
    +
    + + +
    +
    +
    + Mrs dawn lowe
    +

    Hi I went to Portugal a few years ago and I had sangria in one of the bars with my dinner and they put black grapes and strawberries in and it was lovely and your recipe looks delicious I’m gonna try and make my own

    + 01 . Jan . 2020 + +
    +
    +
      +
    • +
      +
      + + +
      +
      +
      + Spain on a Fork
      +

      You will love this sangria! thanks for the comment 🙂 much love

      + 01 . Jan . 2020 + +
      +
      +
    • +
    +
  8. +
  9. +
    +
    + + +
    +
    +
    + lina uceda
    +

    I will definitely be making this Sangria for the Holidays…. It easy to make and it looks delicious.

    + 08 . Nov . 2019 + +
    +
    +
      +
    • +
      +
      + + +
      +
      +
      + Spain on a Fork
      +

      Nothing better than sangria during the holidays 🙂 much love Lina <3

      + 08 . Nov . 2019 + +
      +
      +
    • +
    +
  10. +
  11. +
    +
    + + +
    +
    +
    + Makos (@thehungrybites)
    +

    I was looking for a good sangria recipe and this is it! Thanks Albert!

    + 24 . Jun . 2018 + +
    +
    +
      +
    • +
      +
      + + +
      +
      +
      + Spain on a Fork
      +

      Thanks for the comment Makos, much love

      + 24 . Jun . 2018 + +
      +
      +
    • +
    +
  12. +
  13. +
    +
    + + +
    +
    +
    + mikaela
    +

    Summer is almost here and this sangria sounds fantastic!

    + 04 . May . 2018 + +
    +
    +
      +
    • +
      +
      + + +
      +
      +
      + Spain on a Fork
      +

      Yes perfect for summer! thanks for the comment Mikaela 🙂

      + 04 . May . 2018 + +
      +
      +
    • +
    +
  14. +
  15. +
    +
    + + +
    +
    +
    + Jeff
    +

    I have to say, this sangria looks absolutely delicious! I have a bunch of questions. Can you re-use the fruit to make a second pitcher? How long does it keep once it’s made? Would this be a good use for leftover wine? Or should you use a fresh bottle?

    + 17 . Feb . 2018 + +
    +
    +
      +
    • +
      +
      + + +
      +
      +
      + Spain on a Fork
      +

      Yes you can and should use the same fruit in the pitcher to make a second batch, usually the sangria will hold between 24-48 hours in the fridge (otherwise the wines starts becoming dull), I recommend using only new wine, being that the wine is still the star of the recipe, the higher the quality…the better the sangria…thanks for the comment Jeff 🙂

      + 17 . Feb . 2018 + +
      +
      +
    • +
    +
  16. +
  17. +
    +
    + + +
    +
    +
    + marcie
    +

    I’ve never been to Spain sadly but I’m hoping that will change in the upcoming years! I’m a huge fan of sangria and this looks incredibly refreshing and delicious!

    + 04 . Feb . 2018 + +
    +
    +
      +
    • +
      +
      + + +
      +
      +
      + Spain on a Fork
      +

      It´s cold here now, but in the spring and summer months this is the ideal drink, thanks for the comment Marcie 🙂

      + 04 . Feb . 2018 + +
      +
      +
    • +
    +
  18. +
  19. +
    +
    + + +
    +
    +
    + Meredith | Earth & Oven
    +

    Hi Albert – I think you have a new fan!! I have never been to Spain (its on my short list for this years travels) but I am pretty obsessed with the food. Can’t wait to check out your tasty recipes!

    + 25 . Jan . 2018 + +
    +
    +
      +
    • +
      +
      + + +
      +
      +
      + Spain on a Fork
      +

      Thank you for your comment Meredith 🙂

      + 25 . Jan . 2018 + +
      +
      +
    • +
    +
  20. +
  21. +
    +
    + + +
    +
    +
    + Smitha780
    +

    Some genuinely prize content on this internet site, bookmarked.

    + 02 . Jan . 2018 + +
    +
    +
      +
    • +
      +
      + + +
      +
      +
      + Spain on a Fork
      +

      Thank you for your kind comment 🙂

      + 03 . Jan . 2018 + +
      +
      +
    • +
    +
  22. +
+ +
+
+

Leave A Comment

+
+
+

Your email address will not be published. Required fields are marked *

+ +
+ Recipe Rating +




+
+
+
+ +
+
+ + +
+ +

+ +

+
+
+ +
+ + + +
+ + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_data/spainonafork.com/spainonafork_2.json b/tests/test_data/spainonafork.com/spainonafork_2.json new file mode 100644 index 000000000..537e478bf --- /dev/null +++ b/tests/test_data/spainonafork.com/spainonafork_2.json @@ -0,0 +1,97 @@ +{ + "author": "Albert Bevia @ Spain on a Fork", + "canonical_url": "https://spainonafork.com/canned-salmon-meatballs-with-potatoes-recipe/", + "site_name": "Spain on a Fork", + "host": "spainonafork.com", + "language": "en-US", + "title": "Canned Salmon Meatballs with Potatoes", + "ingredients": [ + "2 cans salmon (6 oz / 170 grams each)", + "1/4 cup plain bread crumbs (30 grams)", + "2 cage-free organic eggs", + "1/4 cup chopped onions (40 grams)", + "1 small carrot (finely grated)", + "1 clove garlic (finely grated)", + "2 tbsp chopped parsley (8 grams)", + "1/2 tsp sweet smoked Spanish paprika (1.25 grams)", + "sea salt & black pepper", + "1 small onion (finely chopped)", + "4 cloves garlic (roughly chopped)", + "1 tbsp all purpose flour (10 grams)", + "1 tbsp white wine vinegar (15 ml)", + "1/2 tsp dried thyme (.50 grams)", + "1 1/2 cups vegetable broth (360 ml)", + "sea salt & black pepper", + "1/4 cup extra virgin olive oil (60 ml)", + "1.5 lbs baby yukon gold potatoes (700 grams)", + "handful chopped fresh parsley" + ], + "ingredient_groups": [ + { + "ingredients": [ + "2 cans salmon (6 oz / 170 grams each)", + "1/4 cup plain bread crumbs (30 grams)", + "2 cage-free organic eggs", + "1/4 cup chopped onions (40 grams)", + "1 small carrot (finely grated)", + "1 clove garlic (finely grated)", + "2 tbsp chopped parsley (8 grams)", + "1/2 tsp sweet smoked Spanish paprika (1.25 grams)", + "sea salt & black pepper" + ], + "purpose": "FOR THE SALMON MEATBALLS" + }, + { + "ingredients": [ + "1 small onion (finely chopped)", + "4 cloves garlic (roughly chopped)", + "1 tbsp all purpose flour (10 grams)", + "1 tbsp white wine vinegar (15 ml)", + "1/2 tsp dried thyme (.50 grams)", + "1 1/2 cups vegetable broth (360 ml)", + "sea salt & black pepper" + ], + "purpose": "FOR THE SAUCE" + }, + { + "ingredients": [ + "1/4 cup extra virgin olive oil (60 ml)", + "1.5 lbs baby yukon gold potatoes (700 grams)", + "handful chopped fresh parsley" + ], + "purpose": "EXTRAS" + } + ], + "instructions_list": [ + "Drain the cans of salmon into a fine sieve with a bowl underneath, gently flake the salmon, then add into a large bowl, along with the bread crumbs, crack in the eggs, add in the onion, carrot, garlic, parsley and paprika, then season with sea salt & black pepper and mix together", + "Once everything is well mixed, mash down on the mixture until you get a paste-like texture, to shape the meatballs, grab a spoonful of the mixture and squeeze it in your hands, then shape into a ball, about the size of a golf ball, if you see your mixture is too dry to work with add in some whisked egg, if it's too wet, add in more bread crumbs", + "Once all the salmon meatballs have been assembled, heat a large fry pan with a medium heat and add in the olive oil", + "After a couple of minutes add in the salmon meatballs, all in a single layer and evenly spaced out, fry for 8 to 10 minutes or until golden fried all around", + "While the salmon meatballs are cooking, cut the potatoes (washed & patted dry) into small bite-size pieces, then add them into a stock pot, all in a flat layer, fill with some water, just enough to barely cover the potatoes, season generously with sea salt and heat with a high heat", + "While the potatoes are cooking, move back to the salmon meatballs, after 8 to 10 minutes and they're golden fried all around, remove them from the pan and set aside", + "Now using the same pan with the same heat, make the sauce, add in the chopped onion and garlic, mix continuously, after 3 to 4 minutes and the onion is translucent, add in the flour, mix continuously, after 2 minutes add in the vinegar, thyme and season with sea salt & black pepper, quickly mix together, then slowly add in the broth while mixing continuously, once all the broth has been added and you've ended up with a slightly creamy sauce, add the salmon meatballs back into the pan, then gently flip each one so they're coated in all that goodness, lower to a low medium heat and simmer", + "After boiling the potatoes for 15 to 20 minutes and they're just cooked through, you can always pierce them with a toothpick, drain into a colander", + "Transfer the potatoes into serving dishes, along with some of the simmering salmon meatballs, then top off with some of the sauce and chopped fresh parsley, enjoy!" + ], + "category": "Main Course", + "yields": "4 servings", + "total_time": 35, + "cook_time": 20, + "prep_time": 15, + "cuisine": "Spanish", + "nutrients": { + "servingSize": "1 serving", + "calories": "458 kcal", + "fatContent": "21 g", + "saturatedFatContent": "3 g", + "unsaturatedFatContent": "15 g", + "transFatContent": "0.03 g", + "carbohydrateContent": "42 g", + "sugarContent": "4 g", + "proteinContent": "28 g", + "sodiumContent": "427 mg", + "fiberContent": "5 g", + "cholesterolContent": "152 mg" + }, + "image": "https://spainonafork.com/wp-content/uploads/2024/08/image3-84-11.png" +} diff --git a/tests/test_data/spainonafork.com/spainonafork_2.testhtml b/tests/test_data/spainonafork.com/spainonafork_2.testhtml new file mode 100644 index 000000000..f79f634e2 --- /dev/null +++ b/tests/test_data/spainonafork.com/spainonafork_2.testhtml @@ -0,0 +1,1013 @@ + + + + + + + + + + + + + + + + + + + + + + + Got Canned Salmon? Make these Salmon Meatballs with Potatoes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ +Spain on a Fork > All Recipes > Main Dishes > Got Canned Salmon? Make these Salmon Meatballs with Potatoes
+
+
+ + +
+
+
+ +
+
+
+ + All Recipes, Main Dishes + / + August 7, 2024 + + +

Got Canned Salmon? Make these Salmon Meatballs with Potatoes

+
+
+

These Salmon Meatballs with Potatoes are packed with goodness, made with basic pantry staples and all done in about 40 minutes. Serve this dish next to a garden salad, crunchy baguette and a bottle of Spanish wine for a great meal.

+

Salmon Meatballs with Potatoes
+To make the salmon meatballs, I used canned salmon. You can also use fresh or frozen salmon if you like. Just fully cook through and then using a fork, break the salmon down into small pieces.

+

Salmon Meatballs with Potatoes
+For the potatoes, I used baby gold potatoes. You can also use regular-sized potatoes if you like. Either way, make sure to use potatoes that are a bit more waxy than starchy. As they hold their shape better when being boiled.

+

Salmon Meatballs with Potatoes
+TIPS & TRICKS to Make this Recipe: The secret to this recipe is to ensure the salmon mixture is well-binded. That way, the meatballs don´t fall apart. Once you have the mixture ready, make sure to squeeze it in your hands before shaping the meatballs.

+

Salmon Meatballs with Potatoes

+

Key Ingredients & Cookware I used in this Recipe:
+
MY COOKWARE
+MY CHEF´S KNIFE
+EXTRA VIRGIN SPANISH OLIVE OIL
+SPANISH PAPRIKA (25% OFF Your Order if you Purchase from this Link)

+

If you´re not already subscribed to my youtube channel, become a subscriber and click on the bell icon to be notified everytime I release a new video.

+

Support Spain on a Fork. Get your Spain on a Fork Apron and other awesome Merchandise here.
+Spain on a Fork Apron
+Your SUPPORT Helps Spain on a Fork Keep Going
+paypal
+

+

Join Me on Patreon!
+Spain on a Fork Patreon
+

+

Watch the Video Below on How to Make these Salmon Meatballs with Potatoes

+

+
+
+
Salmon Meatballs with Potatoes
+
+ Print +
+
+

Canned Salmon Meatballs with Potatoes

+
+
+
+
+ Course + + Main Course +
+
+ Cuisine + + Spanish +
+
+
+
+ Prep Time 15 minutes
+
+ Cook Time 20 minutes
+
+
+
+ Servings 4 +
+
+ Calories 458 kcal +
+
+ Author Albert Bevia @ Spain on a Fork +
+
+ +
+

Ingredients

+
+

FOR THE SALMON MEATBALLS

+
    +
  • + 2 + cans + salmon + 6 oz / 170 grams each +
  • +
  • + 1/4 + cup + plain bread crumbs + 30 grams +
  • +
  • + 2 + cage-free organic eggs +
  • +
  • + 1/4 + cup + chopped onions + 40 grams +
  • +
  • + 1 + small + carrot (finely grated) +
  • +
  • + 1 + clove + garlic (finely grated) +
  • +
  • + 2 + tbsp + chopped parsley + 8 grams +
  • +
  • + 1/2 + tsp + sweet smoked Spanish paprika + 1.25 grams +
  • +
  • + sea salt & black pepper +
  • +
+
+
+

FOR THE SAUCE

+
    +
  • + 1 + small + onion (finely chopped) +
  • +
  • + 4 + cloves + garlic (roughly chopped) +
  • +
  • + 1 + tbsp + all purpose flour + 10 grams +
  • +
  • + 1 + tbsp + white wine vinegar + 15 ml +
  • +
  • + 1/2 + tsp + dried thyme + .50 grams +
  • +
  • + 1 1/2 + cups + vegetable broth + 360 ml +
  • +
  • + sea salt & black pepper +
  • +
+
+
+

EXTRAS

+
    +
  • + 1/4 + cup + extra virgin olive oil + 60 ml +
  • +
  • + 1.5 + lbs + baby yukon gold potatoes + 700 grams +
  • +
  • + handful + chopped fresh parsley +
  • +
+
+
+
+

Instructions

+
+
    +
  1. +

    Drain the cans of salmon into a fine sieve with a bowl underneath, gently flake the salmon, then add into a large bowl, along with the bread crumbs, crack in the eggs, add in the onion, carrot, garlic, parsley and paprika, then season with sea salt & black pepper and mix together

    +
  2. +
  3. +

    Once everything is well mixed, mash down on the mixture until you get a paste-like texture, to shape the meatballs, grab a spoonful of the mixture and squeeze it in your hands, then shape into a ball, about the size of a golf ball, if you see your mixture is too dry to work with add in some whisked egg, if it's too wet, add in more bread crumbs

    +
  4. +
  5. +

    Once all the salmon meatballs have been assembled, heat a large fry pan with a medium heat and add in the olive oil

    +
  6. +
  7. +

    After a couple of minutes add in the salmon meatballs, all in a single layer and evenly spaced out, fry for 8 to 10 minutes or until golden fried all around

    +
  8. +
  9. +

    While the salmon meatballs are cooking, cut the potatoes (washed & patted dry) into small bite-size pieces, then add them into a stock pot, all in a flat layer, fill with some water, just enough to barely cover the potatoes, season generously with sea salt and heat with a high heat

    +
  10. +
  11. +

    While the potatoes are cooking, move back to the salmon meatballs, after 8 to 10 minutes and they're golden fried all around, remove them from the pan and set aside

    +
  12. +
  13. +

    Now using the same pan with the same heat, make the sauce, add in the chopped onion and garlic, mix continuously, after 3 to 4 minutes and the onion is translucent, add in the flour, mix continuously, after 2 minutes add in the vinegar, thyme and season with sea salt & black pepper, quickly mix together, then slowly add in the broth while mixing continuously, once all the broth has been added and you've ended up with a slightly creamy sauce, add the salmon meatballs back into the pan, then gently flip each one so they're coated in all that goodness, lower to a low medium heat and simmer

    +
  14. +
  15. +

    After boiling the potatoes for 15 to 20 minutes and they're just cooked through, you can always pierce them with a toothpick, drain into a colander

    +
  16. +
  17. +

    Transfer the potatoes into serving dishes, along with some of the simmering salmon meatballs, then top off with some of the sauce and chopped fresh parsley, enjoy!

    +
  18. +
+
+
+
+

Recipe Notes

+

Get the Spanish Paprika I used to make this Recipe (25% OFF Your Order if you Purchase through this Link)

+
+
+
Nutrition Facts
+
Canned Salmon Meatballs with Potatoes
+
+
+ Amount Per Serving
+
+ Calories 458 + Calories from Fat 189 +
+
+
+ % Daily Value* +
+
Fat 21g32%
Saturated Fat 3g19%
Trans Fat 0.03g
Polyunsaturated Fat 3g
Monounsaturated Fat 12g
Cholesterol 152mg51%
Sodium 427mg19%
Potassium 1145mg33%
Carbohydrates 42g14%
Fiber 5g21%
Sugar 4g4%
Protein 28g56%
+
Vitamin A 2563IU51%
Vitamin C 39mg47%
Calcium 307mg31%
Iron 3mg17%
* Percent Daily Values are based on a 2000 calorie diet.
+
+
+
+

Disclosure: At Spain on a Fork, we offer affiliate links to help you find what you need to re-create our recipes. If you like what we do, you can support us through our chosen links, which earn us a commission, but you still pay the same price. Learn more here.

+
+
+ +
+
+
+
+ + +
+
+
+
+

Leave A Comment

+
+
+

Your email address will not be published. Required fields are marked *

+ +
+ Recipe Rating +




+
+
+
+ +
+
+ + +
+ +

+ +

+
+
+ +
+ + + +
+ + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 4f3f3710da0eb8d552b7f48f6343c55a63b7a6b0 Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:08:31 -0700 Subject: [PATCH 07/19] Adds support for cookwell (#1271) --- README.rst | 1 + recipe_scrapers/__init__.py | 2 + recipe_scrapers/cookwell.py | 7 +++ tests/test_data/cookwell.com/cookwell_1.json | 40 ++++++++++++++++ .../cookwell.com/cookwell_1.testhtml | 1 + tests/test_data/cookwell.com/cookwell_2.json | 46 +++++++++++++++++++ .../cookwell.com/cookwell_2.testhtml | 1 + 7 files changed, 98 insertions(+) create mode 100644 recipe_scrapers/cookwell.py create mode 100644 tests/test_data/cookwell.com/cookwell_1.json create mode 100644 tests/test_data/cookwell.com/cookwell_1.testhtml create mode 100644 tests/test_data/cookwell.com/cookwell_2.json create mode 100644 tests/test_data/cookwell.com/cookwell_2.testhtml diff --git a/README.rst b/README.rst index de359e4e8..17fe2312a 100644 --- a/README.rst +++ b/README.rst @@ -156,6 +156,7 @@ Scrapers available for: - `https://cookpad.com/ `_ - `https://cookscountry.com/ `_ (*) - `https://cooksillustrated.com/ `_ (*) +- `https://cookwell.com/ `_ - `https://copykat.com/ `_ - `https://www.costco.com/ `_ - `https://countryliving.com/ `_ diff --git a/recipe_scrapers/__init__.py b/recipe_scrapers/__init__.py index e918d5f4c..88c3fff92 100644 --- a/recipe_scrapers/__init__.py +++ b/recipe_scrapers/__init__.py @@ -106,6 +106,7 @@ from .cookscountry import CooksCountry from .cooksillustrated import CooksIllustrated from .cooktalk import CookTalk +from .cookwell import CookWell from .copykat import CopyKat from .costco import Costco from .countryliving import CountryLiving @@ -477,6 +478,7 @@ CookEatShare.host(): CookEatShare, CookPad.host(): CookPad, CookTalk.host(): CookTalk, + CookWell.host(): CookWell, CookieAndKate.host(): CookieAndKate, CookiesAndCups.host(): CookiesAndCups, CookingCircle.host(): CookingCircle, diff --git a/recipe_scrapers/cookwell.py b/recipe_scrapers/cookwell.py new file mode 100644 index 000000000..f970324cd --- /dev/null +++ b/recipe_scrapers/cookwell.py @@ -0,0 +1,7 @@ +from ._abstract import AbstractScraper + + +class CookWell(AbstractScraper): + @classmethod + def host(cls): + return "cookwell.com" diff --git a/tests/test_data/cookwell.com/cookwell_1.json b/tests/test_data/cookwell.com/cookwell_1.json new file mode 100644 index 000000000..25396a84e --- /dev/null +++ b/tests/test_data/cookwell.com/cookwell_1.json @@ -0,0 +1,40 @@ +{ + "author": "Ethan Chlebowski", + "canonical_url": "https://cookwell.com/recipe/crispy-oven-fries", + "host": "cookwell.com", + "language": "en", + "title": "Crispy oven fries", + "ingredients": [ + "Russet potatoes, 3-5", + "Salt, to taste", + "Vinegar, ~15 g", + "Peanut Oil, ~60 g" + ], + "instructions_list": [ + "Prep", + "Set a pot of water on high heat to boil. Preheat the oven to 450°F/232°C (use the convection setting if you have it). Meanwhile, peel the potatoes, slice them into roughly 1/2 inch sheets, then into roughly 1/2 inch thick fries (or to your desired fry size).", + "Parboil the fries", + "Once the water has boiled, add the vinegar and a large pinch of salt, stirring to dissolve the salt. Add the potatoes to the water and boil for 8 minutes. Note: The vinegar will slow down the breakdown of the potato pectin starch so the fries do not fall apart as easily. Boiling the fries will gelate their exterior, which will give you much crispier results in the next steps. When the time is up, pour the fries into a colander and let the excess steam evaporate for a couple of minutes.", + "Coat the fries with oil", + "Add the fries to a large baking sheet and pour over the peanut oil. Gently mix the fries around so the oil completely coats the outside of each fry. There should be a thin layer of excess oil on the pan. Make sure the fries aren't overly crowded. They need space to properly dehydrate in the oven. Use 2 baking sheets if needed.", + "Roast", + "Add the pan to the preheated oven and roast for 15 minutes. Pull the baking sheet out and flip each fry over with a spatula. At this point, you should be able to see some blistering on the outside but the fries won't be overly crisp. If they look a little dry, drizzle over more peanut oil. Add them back to the oven and roast for another 15-20 minutes. At this point, they should be browned and crispy, though it could take longer depending on the size of the fry, how crowded the pan is, or the amount of oil used. If they aren't crispy, let them go longer!", + "Finish & serve", + "Set a paper towel in a bowl. Add the fries and immediately season with salt while they are warm with oil on their surface. Toss the fries with the paper towel so it absorbs the excess oil. Taste and adjust with more salt, if needed. Feel free to add spices, fresh herbs, cheeses, or any flavorings of your choice during this stage. Serve and enjoy." + ], + "category": "Side", + "yields": "4 servings", + "description": "Better & easier than deep fried.", + "total_time": 75, + "cuisine": "American", + "nutrients": { + "calories": "970 calories" + }, + "image": "https://cdn.sanity.io/images/g1s4qnmz/production/ba9d3d0d5ff9a0f9f17f8e11df7e93b7f3806a48-1000x1000.jpg", + "keywords": [ + "Best oven method for fries", + "best alternative to deep frying", + "how to make crispy fries at home", + "the science of good french fries" + ] +} diff --git a/tests/test_data/cookwell.com/cookwell_1.testhtml b/tests/test_data/cookwell.com/cookwell_1.testhtml new file mode 100644 index 000000000..1a0396efe --- /dev/null +++ b/tests/test_data/cookwell.com/cookwell_1.testhtml @@ -0,0 +1 @@ +Crispy oven fries | CookWell
cook well x porter road
Why am I seeing this?

Crispy oven fries

With the right technique, you can make oven fries that are crispier and better seasoned than deep fried.

2-4 servings

Time: 1 hr 15 mins

Ethan ChlebowskiBy Ethan Chlebowski
Photography by Ethan Chlebowski

These fries are crispy without needing to fry them.

Ethan Chlebowski

Ethan Chlebowski

CREATOR

Ingredients

  • Crispy oven fries

    • russet potatoes
      3-5
    • salt
      to taste
    • vinegar
      ~15 ga splash
    • peanut oil
      ~60 gor as needed

Method

Step 1: Prep

  1. Set a pot of water on high heat to .
  2. Preheat the oven to 450°F/232°C (use the convection setting if you have it).
  3. Meanwhile, peel the potatoes, slice them into roughly 1/2 inch sheets, then into roughly 1/2 inch thick fries (or to your desired fry size).

Step 2: Parboil the fries

Once the water has boiled, add the vinegar and a large pinch of salt, stirring to dissolve the salt. Add the potatoes to the water and for 8 minutes.

  • Note: The vinegar will slow down the breakdown of the potato starch so the fries do not fall apart as easily.
  • Boiling the fries will their exterior, which will give you much crispier results in the next steps.

When the time is up, pour the fries into a colander and let the excess steam evaporate for a couple of minutes.

Step 3: Coat the fries with oil

Add the fries to a large baking sheet and pour over the peanut oil. Gently mix the fries around so the oil completely coats the outside of each fry.

  • There should be a thin layer of excess oil on the pan.
  • Make sure the fries aren't overly crowded. They need space to properly in the oven. Use 2 baking sheets if needed.

Step 4: Roast

Add the pan to the preheated oven and for 15 minutes.

Pull the baking sheet out and flip each fry over with a spatula. At this point, you should be able to see some blistering on the outside but the fries won't be overly crisp. If they look a little dry, drizzle over more peanut oil.

Add them back to the oven and roast for another 15-20 minutes.

  • At this point, they should be and crispy, though it could take longer depending on the size of the fry, how crowded the pan is, or the amount of oil used.
  • If they aren't crispy, let them go longer!

Step 5: Finish & serve

Set a paper towel in a bowl. Add the fries and immediately season with salt while they are warm with oil on their surface. Toss the fries with the paper towel so it absorbs the excess oil. Taste and adjust with more salt, if needed.

  • Feel free to add spices, fresh herbs, cheeses, or any flavorings of your choice during this stage. Serve and enjoy.
LET'S COOK!

FAQ

Loading video...

Also Appears In

Free Spice Guide

Join The Mouthful Newsletter to receive our essential spices list pdf.

Just subscribe to our weekly newsletter where 60,000+ readers get lifestyle protocols, recipe frameworks, Q&A from expert home cooks, and cooking trends explained.

We hate spam too. Unsubscribe anytime.

\ No newline at end of file diff --git a/tests/test_data/cookwell.com/cookwell_2.json b/tests/test_data/cookwell.com/cookwell_2.json new file mode 100644 index 000000000..c57f3e223 --- /dev/null +++ b/tests/test_data/cookwell.com/cookwell_2.json @@ -0,0 +1,46 @@ +{ + "author": "Keith McBrayer", + "canonical_url": "https://cookwell.com/recipe/lahmacun", + "host": "cookwell.com", + "language": "en", + "title": "Lahmacun", + "ingredients": [ + "Ground beef, 300 g", + "Flatbreads, ~6", + "Sour Cream, 2 spoonfuls", + "Onions, 1", + "Parsley, 1 bunch", + "Salt, to taste", + "Black Pepper, to taste", + "Paprika, a sprinkle", + "Cumin, a sprinkle", + "Parsley,", + "Onions,", + "Tomatoes,", + "Lemons," + ], + "instructions_list": [ + "Preheat the oven", + "If using freshly made dough, preheat an oven with a pizza steel/stone in the top rack. Switch the oven to the broiler function on high.", + "Mix & spread the meat onto the flabreads.", + "Meanwhile, mix all meat spread components until the meat is tacky. Cook a tiny spoonful of it in the microwave to check seasoning, and add ingredients if needed. Spread a very thin layer of the meat mixture onto a flatbread. Repeat with remaining flatbreads until you’ve run out of meat.", + "Bake the lahmacun", + "Slide a prepped flatbread onto the stone and broil from above until the meat mixture is browned and fully cooked. Repeat with remaining portions. Serve warm with garnishes on the side. To eat: roll up an individual lahmacun with toppings of choice. Enjoy." + ], + "category": "Main Course", + "yields": "6 servings", + "description": "Middle-Eastern flatbread pizza.", + "total_time": 30, + "cuisine": "Middle Eastern", + "nutrients": { + "calories": "2558 calories" + }, + "image": "https://cdn.sanity.io/images/g1s4qnmz/production/3b2a77f0f746cf90c4f7f49a92b39885ada6e9de-3543x3543.jpg", + "keywords": [ + "Lahmacun", + "Middle Eastern", + "flatbread", + "pizza", + "meat" + ] +} diff --git a/tests/test_data/cookwell.com/cookwell_2.testhtml b/tests/test_data/cookwell.com/cookwell_2.testhtml new file mode 100644 index 000000000..ed215ef6a --- /dev/null +++ b/tests/test_data/cookwell.com/cookwell_2.testhtml @@ -0,0 +1 @@ +Lahmacun | CookWell
cook well x porter road
Why am I seeing this?
Lahmacun

Lahmacun

Middle-Eastern flatbread with a spiced, thin layer of meat baked on top.

6 servings

Time: 30 mins

Keith McBrayerBy Keith McBrayer
Photography by Damm Cabrera

This recipe breakdown originally appeared in The Mouthful, our weekly food newsletter for the curious home cook.

Traditionally, you would make a dough and bake the meat into the bread in the oven, but this version can be made with a pre-baked flatbread (homemade flatbread or store bought).

Keith McBrayer

Keith McBrayer

CREATOR

Ingredients

  • Flatbread & meat filling

    • ground beef
      300 g~2/3 lb
    • flatbreads
      ~6
    • sour cream
      , or yogurt
      2 spoonfuls
    • onions
      1
    • parsley
      , or mint
      1 bunch
    • salt
      to taste
    • black pepper
      to taste
    • paprika
      a sprinkle
    • cumin
      a sprinkle
  • For serving

    • parsley
      , chopped
    • onions
      , thinly slied
    • tomatoes
      , thinly sliced
    • lemons
      , wedges

Method

Step 1: Preheat the oven

If using freshly made dough, preheat an oven with a pizza steel/stone in the top rack.

Switch the oven to the broiler function on high.

Step 2: Mix & spread the meat onto the flabreads.

Meanwhile, mix all meat spread components until the meat is tacky.

  • Cook a tiny spoonful of it in the microwave to check seasoning, and add ingredients if needed.

Spread a very thin layer of the meat mixture onto a flatbread. Repeat with remaining flatbreads until you’ve run out of meat.

Step 3: Bake the lahmacun

Slide a prepped flatbread onto the stone and from above until the meat mixture is browned and fully cooked.

Repeat with remaining portions. Serve warm with garnishes on the side.

  • To eat: roll up an individual lahmacun with toppings of choice. Enjoy.
LET'S COOK!

FAQ

Also Appears In

Free Spice Guide

Join The Mouthful Newsletter to receive our essential spices list pdf.

Just subscribe to our weekly newsletter where 60,000+ readers get lifestyle protocols, recipe frameworks, Q&A from expert home cooks, and cooking trends explained.

We hate spam too. Unsubscribe anytime.

\ No newline at end of file From 09df317a7526860ee2efa49185a133d7a1bdfd7f Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:21:59 -0700 Subject: [PATCH 08/19] Adds support for hungryhappens (#1278) * hungryhappens * Update recipe_scrapers/hungryhappens.py Co-authored-by: James Addison <55152140+jayaddison@users.noreply.github.com> --------- Co-authored-by: James Addison <55152140+jayaddison@users.noreply.github.com> --- README.rst | 1 + recipe_scrapers/__init__.py | 2 + recipe_scrapers/hungryhappens.py | 29 + .../hungryhappens.net/hungryhappens_1.json | 55 + .../hungryhappens_1.testhtml | 997 ++++++++++++++++++ .../hungryhappens.net/hungryhappens_2.json | 88 ++ .../hungryhappens_2.testhtml | 797 ++++++++++++++ 7 files changed, 1969 insertions(+) create mode 100644 recipe_scrapers/hungryhappens.py create mode 100644 tests/test_data/hungryhappens.net/hungryhappens_1.json create mode 100644 tests/test_data/hungryhappens.net/hungryhappens_1.testhtml create mode 100644 tests/test_data/hungryhappens.net/hungryhappens_2.json create mode 100644 tests/test_data/hungryhappens.net/hungryhappens_2.testhtml diff --git a/README.rst b/README.rst index 17fe2312a..e01feeada 100644 --- a/README.rst +++ b/README.rst @@ -233,6 +233,7 @@ Scrapers available for: - `https://www.hersheyland.com/ `_ - `https://www.homechef.com/ `_ - `https://hostthetoast.com/ `_ +- `https://hungryhappens.net/ `_ - `https://www.ica.se/ `_ - `https://www.im-worthy.com/ `_ - `https://inbloombakery.com/ `_ diff --git a/recipe_scrapers/__init__.py b/recipe_scrapers/__init__.py index 88c3fff92..8f737caaa 100644 --- a/recipe_scrapers/__init__.py +++ b/recipe_scrapers/__init__.py @@ -183,6 +183,7 @@ from .hersheyland import HersheyLand from .homechef import HomeChef from .hostthetoast import Hostthetoast +from .hungryhappens import HungryHappens from .ica import Ica from .ig import IG from .imworthy import ImWorthy @@ -511,6 +512,7 @@ GourmetTraveller.host(): GourmetTraveller, GrandFrais.host(): GrandFrais, HeatherChristo.host(): HeatherChristo, + HungryHappens.host(): HungryHappens, InBloomBakery.host(): InBloomBakery, InGoodFlavor.host(): InGoodFlavor, JoCooks.host(): JoCooks, diff --git a/recipe_scrapers/hungryhappens.py b/recipe_scrapers/hungryhappens.py new file mode 100644 index 000000000..634663425 --- /dev/null +++ b/recipe_scrapers/hungryhappens.py @@ -0,0 +1,29 @@ +from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients +from ._utils import get_equipment + + +class HungryHappens(AbstractScraper): + @classmethod + def host(cls): + return "hungryhappens.net" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".wprm-recipe-ingredient-group h4", + ".wprm-recipe-ingredient", + ) + + def equipment(self): + equipment_container = self.soup.select_one(".wprm-recipe-equipment-container") + if not equipment_container: + return None + + equipment_items = [ + item.select_one(".wprm-recipe-equipment-name").get_text(strip=True) + for item in equipment_container.select(".wprm-recipe-equipment-item") + if item.select_one(".wprm-recipe-equipment-name") + ] + return get_equipment(equipment_items) diff --git a/tests/test_data/hungryhappens.net/hungryhappens_1.json b/tests/test_data/hungryhappens.net/hungryhappens_1.json new file mode 100644 index 000000000..8c4735ca7 --- /dev/null +++ b/tests/test_data/hungryhappens.net/hungryhappens_1.json @@ -0,0 +1,55 @@ +{ + "author": "Stella", + "canonical_url": "https://hungryhappens.net/one-pot-vegetable-tortellini-soup/", + "site_name": "Hungry Happens", + "host": "hungryhappens.net", + "language": "en-US", + "title": "One Pot Vegetable Tortellini Soup", + "ingredients": [ + "1/4 cup olive oil", + "1 medium sweet onion, (diced)", + "4 medium carrots, (diced)", + "12 oz mushrooms, (diced)", + "4 celery ribs, (diced)", + "4 cloves garlic, (minced)", + "1 tsp paprika", + "1 tbs Italian herb seasoning", + "salt and pepper (to taste)", + "2 tbs tomato paste", + "1/2 cup dry white wine", + "7 cups low sodium vegetable or chicken broth", + "1½ lb cheese tortellini", + "1/2 cup grated parmesan cheese", + "1/2 cup heavy cream", + "3 handfuls kale, (chopped)" + ], + "instructions_list": [ + "In a large pot, heat your oil on high. Once hot, add in the carrots and onion to saute for 3 minutes. Add in the mushrooms and celery and mix to combine and saute all for another few minutes. Next stir in the garlic for 30 seconds.", + "Add in the paprika, Italian herb seasonings, salt and pepper to taste and tomato paste and stir to coat all. Next add in the wine and broth and bring to a boil. Simmer covered for 20 minutes or until the carrots are tender.", + "Add in the tortellini and grated parmesan and boil for 5 minutes. Lastly stir in the heavy cream and kale - gently.", + "Optional: Top with freshly grated parmesan, a light drizzle of olive oil and enjoy!" + ], + "yields": "4 servings", + "total_time": 45, + "cook_time": 30, + "prep_time": 15, + "ratings": 4.96, + "ratings_count": 68, + "equipment": [ + "large pot" + ], + "nutrients": { + "servingSize": "1 serving", + "calories": "944 kcal", + "fatContent": "43 g", + "saturatedFatContent": "16 g", + "unsaturatedFatContent": "15 g", + "carbohydrateContent": "101 g", + "sugarContent": "18 g", + "proteinContent": "37 g", + "sodiumContent": "1100 mg", + "fiberContent": "13 g", + "cholesterolContent": "109 mg" + }, + "image": "https://hungryhappens.net/wp-content/uploads/2022/12/IMG_2810-scaled.jpeg" +} diff --git a/tests/test_data/hungryhappens.net/hungryhappens_1.testhtml b/tests/test_data/hungryhappens.net/hungryhappens_1.testhtml new file mode 100644 index 000000000..1cff18600 --- /dev/null +++ b/tests/test_data/hungryhappens.net/hungryhappens_1.testhtml @@ -0,0 +1,997 @@ + + + + + + + + + + + + + + + One Pot Vegetable Tortellini Soup - Hungry Happens + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ +
+

One Pot Vegetable Tortellini Soup

+ + +
+ +
+ Perfectly flavored cozy soup that will nourish and comfort your loved ones.
+
+
+
+ + + + + + +
+
@hungryhappens

One Pot Vegetable Tortellini Soup (full recipe is on: HungryHappens.Net)

♬ original sound – Stella Drivas

This soup is the gift that keeps on giving. Its vegetarian and super satisfying nonetheless. The perfect way to use up your veggies and that frozen tortellini. If you don’t like kale, feel free to sub in baby spinach or roughly chopped Swiss chard in its place. You can use milk in place of the heavy cream or just leave it out and it will still taste great! You can also use gnocchi instead of the tortellini or any medium to small sized pasta.

+ + + +

If you like this soup recipe then you will LOVE my BEST TORTELLINI SOUP (with sausage) or my TORTELLINI AVGOLEMONO SOUP or my EASY CHICKEN VEGETABLE SOUP!

+ + + +

Thank you for swinging by HungryHappens! If you create this dish or any other from our site, we would greatly appreciate you taking the time to comment and rate the recipe! LOVE YOUR LIFE!

+ + +
+ +
+
vegetable tortellini soup
+ +

One Pot Vegetable Tortellini Soup

+ +
+
+ +
+ +
4.96 from 68 votes
+ +
Servings: 4
Prep Time: 15 minutes
Cook Time: 30 minutes
Total Time: 45 minutes
+
+ + + +

Equipment

+ +

Ingredients 

  • 1/4 cup olive oil
  • 1 medium sweet onion, diced
  • 4 medium carrots, diced
  • 12 oz mushrooms, diced
  • 4 celery ribs, diced
  • 4 cloves garlic, minced
  • 1 tsp paprika
  • 1 tbs Italian herb seasoning
  • salt and pepper to taste
  • 2 tbs tomato paste
  • 1/2 cup dry white wine
  • 7 cups low sodium vegetable or chicken broth
  • lb cheese tortellini
  • 1/2 cup grated parmesan cheese
  • 1/2 cup heavy cream
  • 3 handfuls kale, chopped
+ +

Instructions

  • In a large pot, heat your oil on high. Once hot, add in the carrots and onion to saute for 3 minutes. Add in the mushrooms and celery and mix to combine and saute all for another few minutes. Next stir in the garlic for 30 seconds.
  • Add in the paprika, Italian herb seasonings, salt and pepper to taste and tomato paste and stir to coat all. Next add in the wine and broth and bring to a boil. Simmer covered for 20 minutes or until the carrots are tender.
  • Add in the tortellini and grated parmesan and boil for 5 minutes. Lastly stir in the heavy cream and kale – gently.
  • Optional: Top with freshly grated parmesan, a light drizzle of olive oil and enjoy!
+ +

Notes

If you want a sub for kale, you can use baby spinach or swiss chard. You can also use chicken broth for the vegetable broth.. which I actually prefer.
+ +

Nutrition

Calories: 944kcal | Carbohydrates: 101g | Protein: 37g | Fat: 43g | Saturated Fat: 16g | Polyunsaturated Fat: 2g | Monounsaturated Fat: 13g | Cholesterol: 109mg | Sodium: 1100mg | Potassium: 829mg | Fiber: 13g | Sugar: 18g | Vitamin A: 13388IU | Vitamin C: 37mg | Calcium: 486mg | Iron: 6mg
+ + +
+ +
+
+
+

You might also like

+ +
+
+ +
+ + +
+ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/hungryhappens.net/hungryhappens_2.json b/tests/test_data/hungryhappens.net/hungryhappens_2.json new file mode 100644 index 000000000..e9a036560 --- /dev/null +++ b/tests/test_data/hungryhappens.net/hungryhappens_2.json @@ -0,0 +1,88 @@ +{ + "author": "Stella", + "canonical_url": "https://hungryhappens.net/crispy-salmon-tacos/", + "site_name": "Hungry Happens", + "host": "hungryhappens.net", + "language": "en-US", + "title": "Crispy Salmon Tacos", + "ingredients": [ + "1/2 head green cabbage, (fine shredded)", + "1/2 large cucumber", + "3 tbs dill, (chopped)", + "1/4 cup champagne vinegar ((or white wine vinegar))", + "salt and pepper (to taste)", + "3 avocadoes", + "2 tsp Sriracha sauce", + "1 lime, (juiced)", + "salt and pepper (to taste)", + "2 lbs salmon, (skin removed)", + "2 tsp chipotle powder ((or chili powder))", + "1 tsp onion powder", + "1 tsp dried oregano", + "1 lime, (zested + juiced)", + "8 small corn tortillas" + ], + "ingredient_groups": [ + { + "ingredients": [ + "1/2 head green cabbage, (fine shredded)", + "1/2 large cucumber", + "3 tbs dill, (chopped)", + "1/4 cup champagne vinegar ((or white wine vinegar))", + "salt and pepper (to taste)" + ], + "purpose": "Slaw:" + }, + { + "ingredients": [ + "3 avocadoes", + "2 tsp Sriracha sauce", + "1 lime, (juiced)", + "salt and pepper (to taste)" + ], + "purpose": "Spicy Avocado Mash:" + }, + { + "ingredients": [ + "2 lbs salmon, (skin removed)", + "2 tsp chipotle powder ((or chili powder))", + "1 tsp onion powder", + "1 tsp dried oregano", + "1 lime, (zested + juiced)", + "8 small corn tortillas" + ], + "purpose": "Salmon:" + } + ], + "instructions_list": [ + "Slaw:", + "Leave the skin on your cucumber. Slice your cucumber in half lengthwise. Remove seeds and then slice thin.", + "Mix everyhting in a large bowl, cover and place in your fridge while you make everything else.", + "Avocado Mash:", + "In a medium bowl, rough mash your avocados. Add in the rest of the ingredients and mix to combine. Taste and adjust the sriracha if needed.", + "Salmon:", + "Pat your fish dry with paper towel. Slice the filet into large chunks. Transfer to a bowl and mix with the seasonings, lime zest and juice to coat.", + "In a large skillet, working in two batches, add 1/2 tbs olive oil. Once pan is hot add in the salmon pieces and cook until crispy and done. Remove to a plate lined with paper towel. Wipe the pan clean and repeat with the rest of the salmon.", + "Heat your tortillas in a pan or wrapped in a stack, in aluminum foil in your small toaster oven." + ], + "yields": "4 servings", + "total_time": 30, + "cook_time": 10, + "prep_time": 20, + "ratings": 4.94, + "ratings_count": 32, + "nutrients": { + "servingSize": "1 serving", + "calories": "728 kcal", + "fatContent": "38 g", + "saturatedFatContent": "6 g", + "unsaturatedFatContent": "29 g", + "carbohydrateContent": "48 g", + "sugarContent": "6 g", + "proteinContent": "53 g", + "sodiumContent": "200 mg", + "fiberContent": "18 g", + "cholesterolContent": "125 mg" + }, + "image": "https://hungryhappens.net/wp-content/uploads/2022/04/JPEG-image-110-scaled.jpeg" +} diff --git a/tests/test_data/hungryhappens.net/hungryhappens_2.testhtml b/tests/test_data/hungryhappens.net/hungryhappens_2.testhtml new file mode 100644 index 000000000..370be3c1b --- /dev/null +++ b/tests/test_data/hungryhappens.net/hungryhappens_2.testhtml @@ -0,0 +1,797 @@ + + + + + + + + + + + + + + + Crispy Salmon Tacos - Hungry Happens + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ +
+

Crispy Salmon Tacos

+ + +
+ +
+ These tacos are spicy, refreshing, healthy and SO DELICIOUS.
+
+
+
+ + + + + + +
+
@hungryhappens

Crispy Salmon Tacos @danosseasoning #danosseasoning #danospartner (full recipe is on my site: HungryHappens.Net)

♬ On The Dance Floor (Instrumental) – BLVKSHP

Still trying to wrap my head around how yummy yet good-for-you these are. A titanic combination of spicy, tangy and creamy. The salmon is cooked to crispy perfection in a matter of minutes and the slaw and guac are the ideal accompaniments. And we are leaving out the usual taco fixins of cheese, sour cream, etc. without giving in on taste.

+ + + +

method:

+ + + +

For the salmon the process and ingredients are so so simple. I am loving the crispy salmon recipes so much so we have been applying them to some of our favorite meals. The beauty of this recipe is you can pan fry them or AIR FRY them and you will get the same crispy result.

+ + + +

slaw + Avocado mash:

+ + + +

These tacos are nothing without the simple cabbage slaw and too easy avocado mash. Make sure you make the slaw at the beginning of the process so it has time to marinate and break down in the fridge. You will love this recipe – I promise!

+ + + +

Thank you for swinging by Hungry Happens! If you create this dish or any other from our site, we would greatly appreciate it if you could leave a comment and rate the recipe! LOVE YOUR LIFE!

+ + +
+ +
+
crispy salmon tacos
+ +

Crispy Salmon Tacos

+ +
+
+ +
+ +
4.94 from 32 votes
+ +
Servings: 4
Prep Time: 20 minutes
Cook Time: 10 minutes
Total Time: 30 minutes
+
+ + + + + +

Ingredients 

Slaw:

  • 1/2 head green cabbage, fine shredded
  • 1/2 large cucumber
  • 3 tbs dill, chopped
  • 1/4 cup champagne vinegar (or white wine vinegar)
  • salt and pepper to taste

Spicy Avocado Mash:

Salmon:

  • 2 lbs salmon, skin removed
  • 2 tsp chipotle powder (or chili powder)
  • 1 tsp onion powder
  • 1 tsp dried oregano
  • 1 lime, zested + juiced
  • 8 small corn tortillas
+ +

Instructions

Slaw:

  • Leave the skin on your cucumber. Slice your cucumber in half lengthwise. Remove seeds and then slice thin.
  • Mix everyhting in a large bowl, cover and place in your fridge while you make everything else.

Avocado Mash:

  • In a medium bowl, rough mash your avocados. Add in the rest of the ingredients and mix to combine. Taste and adjust the sriracha if needed.

Salmon:

  • Pat your fish dry with paper towel. Slice the filet into large chunks. Transfer to a bowl and mix with the seasonings, lime zest and juice to coat.
  • In a large skillet, working in two batches, add 1/2 tbs olive oil. Once pan is hot add in the salmon pieces and cook until crispy and done. Remove to a plate lined with paper towel. Wipe the pan clean and repeat with the rest of the salmon.
  • Heat your tortillas in a pan or wrapped in a stack, in aluminum foil in your small toaster oven.
+ +

Notes

Recipe inspired by the great Ina Garten
+ +

Nutrition

Calories: 728kcal | Carbohydrates: 48g | Protein: 53g | Fat: 38g | Saturated Fat: 6g | Polyunsaturated Fat: 9g | Monounsaturated Fat: 20g | Cholesterol: 125mg | Sodium: 200mg | Potassium: 2254mg | Fiber: 18g | Sugar: 6g | Vitamin A: 795IU | Vitamin C: 69mg | Calcium: 164mg | Iron: 5mg
+ + +
+ +
+
+
+

You might also like

+ +
+
+ +
+ + +
+ + + + + + + + + + + + + + + + + + \ No newline at end of file From 8e8c7b25721f4d5f78e1d2877b51c71a884c5429 Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:39:59 -0700 Subject: [PATCH 09/19] Ingredient grouping support for vegrecipesofindia (#1280) --- recipe_scrapers/vegrecipesofindia.py | 9 + .../vegrecipesofindia.json | 80 -- .../vegrecipesofindia.testhtml | 995 -------------- .../vegrecipesofindia_1.json | 69 + .../vegrecipesofindia_1.testhtml | 834 ++++++++++++ .../vegrecipesofindia_2.json | 150 +++ .../vegrecipesofindia_2.testhtml | 1182 +++++++++++++++++ 7 files changed, 2244 insertions(+), 1075 deletions(-) delete mode 100644 tests/test_data/vegrecipesofindia.com/vegrecipesofindia.json delete mode 100644 tests/test_data/vegrecipesofindia.com/vegrecipesofindia.testhtml create mode 100644 tests/test_data/vegrecipesofindia.com/vegrecipesofindia_1.json create mode 100644 tests/test_data/vegrecipesofindia.com/vegrecipesofindia_1.testhtml create mode 100644 tests/test_data/vegrecipesofindia.com/vegrecipesofindia_2.json create mode 100644 tests/test_data/vegrecipesofindia.com/vegrecipesofindia_2.testhtml diff --git a/recipe_scrapers/vegrecipesofindia.py b/recipe_scrapers/vegrecipesofindia.py index 88922c9a3..89168b790 100644 --- a/recipe_scrapers/vegrecipesofindia.py +++ b/recipe_scrapers/vegrecipesofindia.py @@ -1,7 +1,16 @@ from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients class VegRecipesOfIndia(AbstractScraper): @classmethod def host(cls): return "vegrecipesofindia.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".wprm-recipe-ingredient-group h4", + ".wprm-recipe-ingredient", + ) diff --git a/tests/test_data/vegrecipesofindia.com/vegrecipesofindia.json b/tests/test_data/vegrecipesofindia.com/vegrecipesofindia.json deleted file mode 100644 index 63553ad6c..000000000 --- a/tests/test_data/vegrecipesofindia.com/vegrecipesofindia.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "author": "Dassana Amit", - "canonical_url": "https://www.vegrecipesofindia.com/sarson-ka-saag/", - "site_name": "Dassana's Veg Recipes", - "host": "vegrecipesofindia.com", - "language": "en-US", - "title": "Sarson ka Saag Recipe (Authentic Punjabi Style)", - "ingredients": [ - "1 bunch mustard greens ((sarson))", - "½ bunch bathua leaves ((chenopodium/goosefoot/melde))", - "½ bunch spinach leaves ((palak))", - "1 cup chopped radish leaves (- use tender leaves, (mooli ke patte))", - "3 to 4 inches white radish root", - "1 cup fenugreek leaves (- chopped)", - "1 cup chopped onions (or 2 medium sized onions)", - "1.5 cups chopped tomatoes (or 3 medium-sized tomatoes)", - "2 inches ginger (- chopped)", - "2 green chilies (- chopped)", - "7 to 8 garlic (- medium sized, chopped)", - "½ teaspoon red chili powder", - "2 to 3 pinches asafoetida (or ⅛ teaspoon asafoetida powder (hing))", - "2 to 3 cups water (or add as required)", - "2 tablespoon maize flour (or fine cornmeal)", - "salt (as required)", - "⅓ cup finely chopped onions (or 1 small to medium-sized onion)", - "1 to 2 tablespoons oil (or ghee)", - "2 cups cooked saag (or as required)" - ], - "instructions_list": [ - "Making sarson ka saag", - "Firstly clean and chop all the greens. Then wash or rinse the greens very well in running water.", - "In a 5 litre stovetop pressure cooker or pan add all the ingredients listed under \"for sarson ka saag\" except for maize flour.", - "Cover the pressure cook and cook for 6 to 7 minutes or more on medium-high heat.", - "If cooking in a pan, then cover and let the greens cook till tender and softened. Do check occasionally.", - "Pour the greens along with the stock and maize flour in a blender. Blend till smooth.", - "In another deep pan or in the same cooker, pour the pureed greens.", - "Simmer for a good 25 to 30 minutes on a low heat stirring at intervals.", - "Tempering for sarson da saag", - "In another small pan, heat oil. Use any neutral oil. You can also make the tempering with ghee if you prefer.", - "Add the chopped onions and saute them till light brown on medium-low heat.", - "Add the prepared saag. Stir and simmer for a couple of minutes.", - "Stir ocaasionally when the saag is simmering.", - "Serving Suggestions", - "Serve sarson ka saag hot with a side of some chopped onions, whole green chilies or mango pickle. Top the saag with a dollop of white butter and serve with Makki di Roti. Also serve a few jaggery cubes by the side.", - "For a vegan saag, omit adding white butter or use vegan butter.", - "Storage", - "Store the pureed and simmered saag in an airtight container for 4 to 5 days in the refrigerarot. You can also freeze it for a month.", - "When ready to serve, remove the quantity you need from the refrigerator and temper it with the required amout of oil and onions." - ], - "category": "Main Course", - "yields": "8 servings", - "description": "Peppery, pungent and healthy, Punjabi Sarson ka Saag (or Sarson da Saag) is a favorite meal during the cold North Indian winters, especially when paired with Makki Ki Roti. Making this authentic dish is not difficult, but it does take some time.", - "total_time": 240, - "cook_time": 120, - "prep_time": 120, - "cuisine": "North Indian,Punjabi", - "ratings": 4.93, - "ratings_count": 66, - "nutrients": { - "servingSize": "1 serving", - "calories": "59 kcal", - "fatContent": "1 g", - "saturatedFatContent": "1 g", - "unsaturatedFatContent": "2 g", - "carbohydrateContent": "10 g", - "sugarContent": "2 g", - "proteinContent": "4 g", - "sodiumContent": "385 mg", - "fiberContent": "2 g" - }, - "dietary_restrictions": [ - "Vegan Diet", - "Vegetarian Diet" - ], - "image": "https://www.vegrecipesofindia.com/wp-content/uploads/2012/12/sarson-ka-saag-recipe-1.jpg", - "keywords": [ - "Sarson da Saag", - "Sarson ka Saag" - ] -} diff --git a/tests/test_data/vegrecipesofindia.com/vegrecipesofindia.testhtml b/tests/test_data/vegrecipesofindia.com/vegrecipesofindia.testhtml deleted file mode 100644 index 3b3a19f24..000000000 --- a/tests/test_data/vegrecipesofindia.com/vegrecipesofindia.testhtml +++ /dev/null @@ -1,995 +0,0 @@ - - - - - - - - Sarson ka Saag | Authentic Punjabi Sarson da Saag - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Sarson ka Saag

Step by StepJump to Recipe
-

Peppery, pungent and deeply nutritious, Punjabi Sarson ka Saag (or Sarson da Saag) is a favorite during the cold North Indian winters, especially when paired with Makki Ki Roti. Making this authentic dish is not hard, but it does take some time. Once you taste how vibrantly creamy and delicious it is, you won’t mind the work!

-
sarson ka saag in a white bowl topped with chopped onions and served with a piece of makki ki roti.
- - - - -

About Sarson Ka Saag

- - - -

Sarson is the Hindi/Punjabi word for mustard and saag means greens; thus, this recipe is for the traditional Indian preparation of mustard greens. Other versions of saag include: Palak Saag (spinach greens), bathua saag, or Chane ka Saag (chickpea greens).

- - - -

Sarson ka saag is a type of curry, so it is creamy, saucy and simply addictive. Traditionally, it is served with an unleavened corn-based flatbread known as Makki di Roti, though it can also be served with Paratha and steamed basmati rice.

- - - -

This sarson ka saag recipe is a labor of love, requiring both time and patience. Unfortunately, there is no shortcut method for making this dish.

- - - -

You’ll need to sort the greens, then wash, chop, and cook them before blending them, after which you’ll need to cook them again. It is a labor-intensive process, but none of the steps are difficult.

- - - -

While I’m aware that everyone wants their curry in a hurry nowadays, if you really want to savor the taste of an authentic sarson da saag then you’ll have to invest some time in preparing it.

- - - -

The sarson ka saag recipe is very easy, but does take a lot of time to make; as such I like to break up the steps over the course of a few days.

- - - -

Usually, I clean the greens one day before and keep them in the fridge in airtight containers so half of the work is over. Making the saag the following day makes it feel much easier.

- - - -

At home, we generally use 5 different leafy green vegetables to make the saag. They are:

- - - -
  1. Mustard Greens (sarson)
  2. Chenopodium/ Goosefoot leaves (called bathua in Hindi)
  3. Spinach (palak)
  4. White Radish Root and Greens (mooli)
  5. Fenugreek (methi)

You can see all the greens (with the exception of methi) in the photo below.

- - -
-
collage photo of mustard, bathua (also known as chenopodium in english), spinach, radish and fenugreek leaves.
- - -

The predominant flavor in this saag recipe comes from the spicy, bitter mustard greens. The presence of spinach, bathua, and radish helps to lessen the bitterness of the mustard and methi so you end up with a creamy, mellow saag that is simply bursting with flavor.

- - - -

Winter is the season for both mustard and bathua here in India. Sarson ka saag is therefore considered a cold-weather dish in North India, especially in Punjab from where this traditional recipe comes from.

- - - -

The sarson da saag is usually topped with Homemade Butter and served with makki ki roti (flat breads from maize flour); this meal is not only comforting but also serves to warm up the palate and body.

- - - -

With all of the dark, leafy greens, sarson ka saag is a bowlful of antioxidants and phytonutrients, so that extra topping of butter is alright.

- - - -

The saag is also usually served with an accompaniment of sliced or chopped onions and some green chilies for some extra piquancy.

- - -
-
sarson ka saag in a white bowl topped with chopped onions and served with a piece of makki ki roti.
- - -

Because this is a time-intensive recipe, I always make sarson ka saag in bulk and keep it in the fridge. Then, when I need to serve it, all I have to do is temper the saag and then enjoy!

- - - -

From what I have observed, the taste of the saag improves after about a day; all of the flavors meld as it ages. Mine usually does not last for more than 4 to 5 days, after which you can freeze any leftovers.

- - - -

Saag Proportions

- - - -

The recipe I present here is the traditional way we make saag at home. The proportion of bathua to spinach and mustard is 1:1:2. So for example, if you are using 1 whole bunch of mustard leaves then use a ½ bunch of bathua and a ½ bunch of spinach.

- - - -

You can also consider using this ratio in cup measurement. Example for 2 cups of mustard greens use one cup each of spinach and bathua. Note that you can easily increase or decrease this ratio proportionately.

- - - -

The other two greens – radish and fenugreek – are added using the Indian method of andaaz, which means we just eyeball it. Fenugreek is optional, though I love the flavor and health benefits it brings to this cozy winter meal.

- - - -

This sarson ka saag recipe makes roughly 8 to 9 servings, but it can be easily halved or doubled.

- - -
Step-by-Step Guide
-

How to make Sarson ka Saag

- - - -

Prep, chop and clean all the greens

- - - -

1: Remove the lower end of the mustard seems just a few centimeters from the base. The mustard stems can be tough, so it is up to you whether you want to discard the stems or keep them. If you keep them, then they have to be cooked really well so that they become soft.

- - - -

Sort and prep the remaining greens as well – spinach, bathua, fenugreek leaves. For the radish, sort the leaves and peel, chop the root.

- - - -

If prepping ahead a day earlier, refrigerate the greens and the radish root in ziplock bags or air-tight containers for a day.

- - - -

You will need the following leafy greens:

- - - -
  • 1 bunch of mustard greens – cleaned & sorted
  • ½ bunch of bathua or a small bunch
  • ½ bunch of spinach or a small to medium-sized bunch
  • 1 cup chopped tender radish greens
  • 1 cup fenugreek leaves – optional
  • 3 to 4 inches white radish root
-
prepped greens for sarson ka saag in bowls on a table.
- - -

Rinse Greens

- - - -

2: This is perhaps the most time-intensive part of the process. You have to really wash the greens – especially the mustard greens – to get rid of the mud clinging to the stems. Depending on the size of your sink, you may need to do this task in batches.

- - - -

Note that the prep up to this point can be done up to 1 to 2 days in advance; keep the prepped greens in the fridge until you are ready to rinse the greens and then make the saag. Do not rinse the greens and store them in the fridge – they will rot.

- - -
-
washing greens in batches.
- - -

Pressure Cook

- - - -

3: Add the greens to a 5 or 6 litre stove-top pressure cooker.

- - -
-
adding greens to pressure cooker.
- - -

4: Add the other veggies – peeled and chopped radish root (2 to 3 inches), 1 cup chopped onions, 1.5 cups chopped tomatoes, 2 inches ginger (chopped) and 7 to 8 medium-sized garlic (chopped).

- - -
-
adding veggies to pressure cooker with the greens for making punjabi sarson ka saag recipe.
- - -

5: Season the greens using 2 green chilies (chopped), ½ teaspoon red chili powder, 2 to 3 pinches asafoetida (hing) & salt as needed.

- - -
-
adding green chilies, red chili powder, asafoetida & salt.
- - -

6: Add 2 to 3 cups water.

- - -
-
adding water.
- - -

7: Cover and pressure cook for 6 to 7 minutes on medium-high heat, or until the greens become soft. Wait for the pressure to fall naturally in the cooker and then only open the lid.

- - - -

You can also cook in a pan, though it will take longer. Cover and let the greens cook till they become soft.

- - -
-
pressure cooker on a stove with steam coming out.
- - -

8: Let the pressure settle naturally in the cooker. When you open the lid, you will see the greens, onions, tomatoes etc all have cooked well. Let the greens mixture cool to room temperature.

- - -
-
pressure cooked greens and veggies in the cooker base for making sarson ka saag.
- - -

Blend The Greens

- - - -

9: Add some of the greens and their cooking liquid to the base of a blender.

- - -
-
blender with some of the greens and liquid.
- - -

10: Add 2 tablespoons of maize flour (fine cornmeal).

- - -
-
Add maize flour to greens mixture in blender.
- - -

11: Working in batches, blend to your preferred consistency. I usually make a smooth puree, but some folks like a coarser texture.

- - - -

You can also use a hand blender to minimize the number of dishes. If doing so, then chop the greens before you pressure cook them to make them easier to blend. The traditional way is to use a Madani (Indian hand blender) to blend the greens.

- - -
-
Blending the greens mixture till smooth.
- - -

Cook The Pureed Sarson ka Saag

- - - -

12: Pour the greens purée in a deep-sided pot, as it will bubble and splutter. You can also add it to the same cooker.

- - -
-
adding greens puree in a pan to simmer more.
- - -

13: Simmer for a good 25 to 30 minutes. Stir occasionally so that the sarson da saag does not stick to the bottom of the pan. Check the seasonings and add more salt if required. 

- - - -

Once cooled, the saag can be kept in an airtight container in the fridge for 4 to 5 days.

- - -
-
simmer the sarson ka saag while stirring occasionally.
- - -

Make Tempering

- - - -

14: The saag is not ready to be served yet – we still have to temper it. We always temper the saag with onions, but you can also add some ginger, green chilies and tomatoes along with the onions. Heat oil or ghee and add aromatics.

- - - -

The amount of oil/ghee and onions to be added depends on the portions of saag you will be serving. For 3 servings, 1 to 2 tablespoons of oil with 1 medium-sized onion (about one-third cup finely chopped onions) is about right.

- - -
-
making onion Tempering For Sarson Da Saag.
- - -

15: Lightly brown the onions.

- - -
-
lightly browned onions in a pan.
- - -

16: Add about 2 cups of the cooked sarson ka saag to the tempering. Simmer for a few minutes until the saag becomes hot.

- - -
-
Added the cooked sarson ka saag to onions.
- - -

17:  Serve the hot sarson ka saag straight away, preferably with makki di roti and a few jaggery cubes by the side – nothing beats this combination. You can also serve sarson da saag with paratha and steamed rice.

- - - -

Pair this meal combination of the saag and makki ki roti with a side of freshly chopped onions and green chilies if you like.

- - -
-
sarson ka saag in a white bowl on a rattan table with a white plate of makki ki roti to the side.
- - -

FAQs

- - - -
What can I substitute for bathua?

You can just skip it, or feel free to add in more spinach. Please note that bathua is also known as chenopodium album, melde, lamb’s quarters, goosefoot or fat-hen.

Does the radish have to be white?

White radish root – also known as daikon – is a delicious vegetable. If you are unable to procure it, I suggest substituting white turnips or regular red radishes instead.

Is there a substitute for maize flour? What is it used for?

Maize flour – which is known as fine cornmeal in the US – can be substituted with besan (gram flour), chickpea flour, or rice flour if you prefer. The purpose of this ingredient is to act as a thickener, as well as to tone down the bitterness of the mustard greens.

Is there any way to make the sarson ka saag less bitter?

If your sarson greens are bitter, I suggest that you reduce the amount that you use and increase the amount of spinach proportionally.

Alternatively, you can do as my mother-in-law used to and get rid of the cooking water from the greens; I don’t prefer to do this because you lose out on some of the nutrients, but it should decrease the amount of bitterness you taste.

How long will the saag last in the fridge?

I suggest you use it within 4 to 5 days. You can also freeze any leftovers for up to 1 month. To serve from frozen, defrost, reheat and then add the tempering.

Can this sarson da saag recipe be scaled?

Yes! So long as you keep the proportions the same, you can either halve the recipe or double/triple it as needed.

- - -

More Punjabi Delicacies!

-

Please be sure to rate the recipe in the recipe card or leave a comment below if you have made it. For more vegetarian inspirations, Sign Up for my emails or follow me on Instagram, Youtube, Facebook, Pinterest or Twitter.

-
sarson ka saag in a white bowl on a rattan table with a white plate of makki ki roti on the side..
-

Sarson ka Saag Recipe (Authentic Punjabi Style)

-
- -
-
Peppery, pungent and healthy, Punjabi Sarson ka Saag (or Sarson da Saag) is a favorite meal during the cold North Indian winters, especially when paired with Makki Ki Roti. Making this authentic dish is not difficult, but it does take some time.
-
-
4.93 from 66 votes
-
- - -
-
-
Prep Time 2 hours
-
Cook Time 2 hours
- -
Total Time 4 hours
-
- -
-
-
Cuisine North Indian, Punjabi
-
Course Main Course
-
Diet Vegan, Vegetarian
-
Difficulty Level Moderate
-
- - - -
-
Servings 8
-
Units
-

Ingredients

-
-

For sarson ka saag

  • 1 bunch mustard greens (sarson)
  • ½ bunch bathua leaves (chenopodium/goosefoot/melde)
  • ½ bunch spinach leaves (palak)
  • 1 cup chopped radish leaves – use tender leaves, (mooli ke patte)
  • 3 to 4 inches white radish root
  • 1 cup fenugreek leaves – chopped
  • 1 cup chopped onions or 2 medium sized onions
  • 1.5 cups chopped tomatoes or 3 medium-sized tomatoes
  • 2 inches ginger – chopped
  • 2 green chilies – chopped
  • 7 to 8 garlic – medium sized, chopped
  • ½ teaspoon red chili powder
  • 2 to 3 pinches asafoetida or ⅛ teaspoon asafoetida powder (hing)
  • 2 to 3 cups water or add as required
  • 2 tablespoon maize flour or fine cornmeal
  • salt as required

Tempering saag for 3 servings

  • cup finely chopped onions or 1 small to medium-sized onion
  • 1 to 2 tablespoons oil or ghee
  • 2 cups cooked saag or as required
- -

Instructions
 

Making sarson ka saag

  • Firstly clean and chop all the greens. Then wash or rinse the greens very well in running water.
  • In a 5 litre stovetop pressure cooker or pan add all the ingredients listed under "for sarson ka saag" except for maize flour.
  • Cover the pressure cook and cook for 6 to 7 minutes or more on medium-high heat.
  • If cooking in a pan, then cover and let the greens cook till tender and softened. Do check occasionally.
  • Pour the greens along with the stock and maize flour in a blender. Blend till smooth.
  • In another deep pan or in the same cooker, pour the pureed greens.
  • Simmer for a good 25 to 30 minutes on a low heat stirring at intervals.

Tempering for sarson da saag

  • In another small pan, heat oil. Use any neutral oil. You can also make the tempering with ghee if you prefer.
  • Add the chopped onions and saute them till light brown on medium-low heat.
  • Add the prepared saag. Stir and simmer for a couple of minutes.
  • Stir ocaasionally when the saag is simmering.

Serving Suggestions

  • Serve sarson ka saag hot with a side of some chopped onions, whole green chilies or mango pickle. Top the saag with a dollop of white butter and serve with Makki di Roti. Also serve a few jaggery cubes by the side.
  • For a vegan saag, omit adding white butter or use vegan butter.

Storage

  • Store the pureed and simmered saag in an airtight container for 4 to 5 days in the refrigerarot. You can also freeze it for a month.
  • When ready to serve, remove the quantity you need from the refrigerator and temper it with the required amout of oil and onions.
- -

Notes

  • Greens: Feel free to skip fenugreek leaves and bathua leaves and add in some more spinach. You can also add red radish or turnips if you do not get white radish. For the radish leaves, use tender leaves and not stringy ones.
  • -
  • Proportions of Greens: Use the proportion 1:1:2 for bathua, spinach and mustard greens respectively. Example, if you use 1 whole bunch of mustard leaves then use ½ bunch of bathua and ½ bunch of spinach. You can also opt to use this ratio in cup measurement. Example for 2 cups of mustard greens use one cup each of spinach and bathua. Note that you can easily increase or decrease this ratio proportionately.
  • -
  • Maize Flour: Swap maize flour with gram flour, rice flour or chickpea flour.
  • -
  • Bitter Mustard Greens: If in case your mustard greens are bitter, I recommend that you reduce the amount that you use and increase the amount of spinach proportionally. Alternatively, you can also get rid of the cooking water. I don’t prefer to do this because you lose out on some of the nutrients, but it should decrease the amount of bitterness in the saag.
  • -
  • Instant Pot Sarson ka Saag: Easily cook the saag in the Instant Pot. Add 2 cups water to the chopped greens, aromatics, tomatoes, spices and seasonings and pressure cook on high mode for 5 minutes. Wait for 5 minutes after the cooking is complete and then do a quick pressure release. Let this mixture cool and then blend to a fine consistency with the maize flour (fine cornmeal) using an immersion blender. Press the saute button and saute for 3 to 5 minutes on normal mode until the saag thickens. Then follow the method of tempering saag in a frying pan or skillet.
  • -
  • Scale: Keep the proportions the same, you can either halve the recipe or double or triple it as required.
  • -
  • Gluten-free: Omit asafoetida to make the saag gluten-free.
  • -
  • Note that the approximate nutrition info is for the saag only without the sauteing of the onions in oil.
  • -
-
-

Nutrition Info (Approximate Values)

-
Nutrition Facts
-
Sarson ka Saag Recipe (Authentic Punjabi Style)
-
-
- Amount Per Serving
-
- Calories 59 - Calories from Fat 9 -
-
-
- % Daily Value* -
-
Fat 1g2%
Saturated Fat 1g6%
Polyunsaturated Fat 1g
Monounsaturated Fat 1g
Sodium 385mg17%
Potassium 142mg4%
Carbohydrates 10g3%
Fiber 2g8%
Sugar 2g2%
Protein 4g8%
-
Vitamin A 321IU6%
Vitamin B1 (Thiamine) 1mg67%
Vitamin B2 (Riboflavin) 1mg59%
Vitamin B3 (Niacin) 1mg5%
Vitamin B6 1mg50%
Vitamin C 36mg44%
Vitamin E 1mg7%
Vitamin K 4µg4%
Calcium 112mg11%
Vitamin B9 (Folate) 10µg3%
Iron 1mg6%
Magnesium 18mg5%
Phosphorus 62mg6%
Zinc 1mg7%
* Percent Daily Values are based on a 2000 calorie diet.
-
-
-
-
-

Like what you see?

-

Stay up to date with new recipes and ideas.

- -
- - -

This Sarson ka Saag recipe post from the archives, first published on December 2012 has been republished and updated on November 2022.

-

Share This Recipe:

PinWhatsAppPrintShare1.8k

Meet Dassana

Welcome to Dassana's Veg Recipes. I share vegetarian recipes from India & around the World. Having been cooking for decades and with a professional background in cooking & baking, I help you to make your cooking journey easier with my tried and tested recipes showcased with step by step photos & plenty of tips & suggestions.

-
Get My Secrets to Great Indian Food
Sign up for my FREE Beginners Guide to Delicious Indian Cooking
-
- - -

Comments are closed.

-

141 Comments

- - -
    -
  1. -
    - - -
    -

    I have been making this recipe for almost a year and my whole family goes crazy for it! I added more garlic and ginger for extra zing and cheated by adding more butter and paneer before serving. Thank you so much!

    -
    - -
    -
      -
    1. -
      - - -
      -

      Thanks for sharing the feedback and the variations you have made. Nice to know.

      -
      - -
      -
    2. -
    -
  2. -
  3. -
    - - -
    -

    Thank you for this. I got all ingredients except bathua. But I shall try and follow your directions.5 stars

    -
    - -
    -
  4. -
  5. - -
      -
    1. - -
    2. -
    -
  6. -
- -

See More Comments

-
-
- - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/test_data/vegrecipesofindia.com/vegrecipesofindia_1.json b/tests/test_data/vegrecipesofindia.com/vegrecipesofindia_1.json new file mode 100644 index 000000000..7f6802b6c --- /dev/null +++ b/tests/test_data/vegrecipesofindia.com/vegrecipesofindia_1.json @@ -0,0 +1,69 @@ +{ + "author": "Dassana Amit", + "canonical_url": "https://www.vegrecipesofindia.com/eggless-pineapple-cream-cake/", + "site_name": "Dassana's Veg Recipes", + "host": "vegrecipesofindia.com", + "language": "en-US", + "title": "Eggless Pineapple Cake | Pineapple Pastry Recipe", + "ingredients": [ + "1 Vanilla Cake (or sponge cake - small to medium-sized, homemade or store-brought)", + "200 ml whipping cream (or heavy cream)", + "¼ teaspoon vanilla extract (or pineapple essence)", + "4 to 5 tablespoons icing sugar (or as required)", + "2 to 3 pineapple slices (tinned or canned, finely chopped)", + "3 to 4 pineapple slices (tinned or canned, for decoration)", + "5 to 6 glazed cherries ( for decoration or chocolate chips, optional)", + "2 to 3 teaspoons Pineapple Juice ( for brushing on the cake, homemade or canned, optional)" + ], + "instructions_list": [ + "Preparation", + "Remove the 2 to 3 pineapple slices from the can draining the syrup in the can itself. Finely chop the pineapple slices and set aside.", + "Slice the cake with a serrated knife from the center carefully into two equal halves.", + "Brush the base slice of the cake with some pineapple juice. This is an optional step. If you do not have pineapple juice, brush with some sugar water. To make sugar water, simply dissolve a 2 to 3 teaspoons of sugar in 2 to 3 tablespoons of water. Mix well and use.", + "Make Cream Frosting", + "In a stand mixer fitted with the wired whip blade, whip the cream and icing sugar along with vanilla extract or pineapple essence, at high speed till you get stiff peaks in the cream.", + "You can also use a hand held electric beater to whip the cream.", + "Taste the whipped cream and add more icing sugar if needed.", + "The cream should have stiff peaks – meaning on turning the bowl the cream should not fall.", + "Mix the finely chopped pineapple with ¼ or ⅓ portion of the whipped cream in a separate bowl.", + "Make Pineapple Cake", + "Spread the pineapple cream frosting on the base slice evenly..", + "Keep the other cake half over on top.", + "Now spread the remaining whipped cream all over the cake on the top as well as the sides, with a palette knife or spatula evenly.", + "Decorate the top of the cake with a few more pineapple slices.", + "Keep the Pineapple Pastry in the refrigerator for 2 to 3 hours so that the cream icing sets.", + "Serve the Eggless Pineapple Cake immediately.", + "Or you can keep it covered in the fridge and then serve later.", + "It is advisable to finish this Pineapple Cake in a day or two." + ], + "category": "Desserts", + "yields": "6 servings", + "description": "Pineapple Pastry is a delightful dessert bursting with sweet, tart, and tangy flavors. Fluffy and tender cake is layered with a creamy whipped frosting, and the bright taste of pineapple is in every bite.", + "total_time": 90, + "cook_time": 40, + "prep_time": 50, + "cuisine": "World", + "ratings": 4.8, + "ratings_count": 10, + "nutrients": { + "servingSize": "1 serving", + "calories": "495 kcal", + "fatContent": "15 g", + "saturatedFatContent": "9 g", + "unsaturatedFatContent": "5 g", + "transFatContent": "0.4 g", + "carbohydrateContent": "87 g", + "sugarContent": "51 g", + "proteinContent": "5 g", + "sodiumContent": "607 mg", + "fiberContent": "2 g", + "cholesterolContent": "38 mg" + }, + "dietary_restrictions": [ + "Vegetarian Diet" + ], + "image": "https://www.vegrecipesofindia.com/wp-content/uploads/2014/01/eggless-pineapple-cream-cake-recipe-1.jpg", + "keywords": [ + "Pineapple Cake" + ] +} diff --git a/tests/test_data/vegrecipesofindia.com/vegrecipesofindia_1.testhtml b/tests/test_data/vegrecipesofindia.com/vegrecipesofindia_1.testhtml new file mode 100644 index 000000000..abcfbc0b2 --- /dev/null +++ b/tests/test_data/vegrecipesofindia.com/vegrecipesofindia_1.testhtml @@ -0,0 +1,834 @@ + + + + + + + + + + Eggless Pineapple Cake | Pineapple Pastry Recipe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Eggless Pineapple Cake | Pineapple Pastry

Step by StepJump to Recipe
+

Pineapple Pastry is a delightful dessert bursting with sweet, tart, and tangy flavors. Fluffy and tender sponge cake is layered with a creamy whipped frosting, and the bright taste of pineapple is in every bite. Here I share my easy step-by-step photos and instructions to prepare a really good Eggless Pineapple Cake recipe for any occasion!

+
slice of pineapple pastry on white plate and pineapple cake in the background.
+ + +

About This Pineapple Cake

+ + + +

Here in India you’ll find fruity, sweet and scrumptious pineapple cakes in nearly every local bakery and pastry shop.

+ + + +

Classic vanilla sponge cakes are cut and layered with a rich and creamy frosting, then topped with pineapple rings for a dessert that is as lovely to look at as it is delicious to enjoy!

+ + + +

While these cakes seem impressive and taste super yummy, you might be surprised to learn that they’re actually quite easy to make at home.

+ + + +

In fact, there are two simple options you can choose from for how you want to prepare this eggless pineapple cake recipe: Either with homemade Eggless Vanilla Cake, or you can use your favorite store bought vanilla cake or sponge cake.

+ + + +

In addition to your choice of cake, you’ll only need a handful of other ingredients that are readily available at most markets – like heavy cream and canned pineapple. And you can garnish this tropical treat however you like!

+ + + +

Make Eggless Pineapple Cake completely from scratch or as a quick last-minute dessert, and either way it’s sure to please.

+ + +
+
eggless pineapple cream cake recipe
+ +
Step-by-Step Guide
+

How to Make Eggless Pineapple Cake

+ + + +

Prep Cake

+ + + +

1. To make this pineapple cake recipe, I first prepare my easy eggless vanilla cake a day ahead and refrigerate it.

+ + + +

You’ll find the complete ingredients list and steps to make this delicious sponge from scratch with video and step-by-step photo guide here: Eggless Vanilla Cake.

+ + + +

You also can simply purchase a readymade small to medium-size vanilla cake or eggless sponge cake from a bakery or superstore.

+ + + +

This is a great option for when you need to have a dessert ready in a snap, but don’t want it to be completely prepackaged.

+ + +
+
base cake on a plate.
+ + +

2. If you have baked the cake, let it cool completely. Slice the vanilla cake in half to create two equal layers.

+ + +
+
sliced cake halve on a plate.
+ + +

3. Use a pastry brush to lightly coat the cut side of the bottom layer with pineapple juice. This will infuse the cake with the pineapple flavor, and keep the crumb nice an moist.

+ + + +

You can opt to use either homemade Pineapple Juice or canned. If out of pineapple juice, use sugar water instead. Dissolve 2 to 3 teaspoons of sugar in 2 to 3 tablespoons of water and use it to brush the cake with.

+ + +
+
brush cake with pineapple syrup.
+ + +

Whip Cream

+ + + +

4. Next, make the frosting. Whip 200 ml heavy cream with 4 to 5 tablespoons of icing sugar and ¼ teaspoon vanilla extract, or ¼ teaspoon pineapple essence, with a hand held electric beater or in a stand mixer (attached with the wire whip blade).

+ + + +

If using a stand mixer, beat at the highest speed till you get stiff peaks. But don’t overdo the beating as the cream might turn into butter. The moment you get stiff peaks, just stop the mixer or beater.

+ + + +

Before you begin to whip, keep the cream in the refrigerator for some hours until it is cold. You can also keep the steel whipping bowl or the stand mixer steel bowl in the fridge or freezer for a few hours.

+ + +
+
whip cream, icing sugar and vanilla extract
+ + +

5. Take ¼ or ⅓ portion of the whipped cream in another bowl. Mix it with finely chopped canned pineapple. Fold in to mix well, but take care to not over mix.

+ + +
+
add chopped pineapple pieces to whipped cream.
+ + +

Make Pineapple Cake

+ + + +

6. Spread the pineapple cream frosting on the base slice evenly.

+ + +
+
spread the pineapple cream over cake.
+ + +

7. Cover with the other half of the vanilla sponge.

+ + +
+
covered with second cake halve to make eggless pineapple cake.
+ + +

8. Then spread the rest of the whipped cream frosting on all sides of the cake – the top layer as well as on the sides. This is most easily done with a flat spatula or palette knife.

+ + + +

Decorate the top of the cake with canned pineapple rings, and your choice of other toppings. Here I’ve added some chocolate chips for extra texture and sweetness.

+ + + +

Place the cake in the refrigerator (covered), for 2 to 3 hours so that the whipped cream frosting sets. Slice the eggless pineapple cream cake and serve immediately.

+ + +
+
a slice of pineapple pastry on a white plate with spoon at side.
+ + +

FAQs

+ + + +
Can I make this a gluten-free eggless pineapple cake recipe?

You certainly can substitute all purpose or whole wheat flour in the eggless vanilla cake recipe with your preferred GF baking flour blend. Or, purchase your choice of gluten-free readymade cake.

What other toppings can I add to cake with pineapple frosting?

You can add cherries (similar to classic Black Forest Cake) or shredded coconut on top for some tasty flair.

Can I use fresh pineapple instead of canned?

Yes, feel free to use freshly chopped pineapple in this recipe. Just make it a point to use sweet tasting fresh pineapples. With fresh pineapples too, the cake is equally delicious!

How long does eggless pineapple cake last?

If the vanilla sponge is made within a day or so before the pineapple cake is prepared, the pineapple cake will keep well for another 2 or 3 days. Place in a cake holder with a lid, or leave covered in the refrigerator.

+ + +

More Egg-free Cakes To Try!

+ +
+

Please be sure to rate the recipe in the recipe card or leave a comment below if you have made it. For more vegetarian inspirations, Sign Up for my emails or follow me on Instagram, Youtube, Facebook, Pinterest or Twitter.

+
top shot of pineapple pastry cake on white plate.
+

Eggless Pineapple Cake | Pineapple Pastry Recipe

+
+ +
+
Pineapple Pastry is a delightful dessert bursting with sweet, tart, and tangy flavors. Fluffy and tender cake is layered with a creamy whipped frosting, and the bright taste of pineapple is in every bite.
+
+
4.80 from 10 votes
+
+ + +
+
+
Prep Time 50 minutes
+
Cook Time 40 minutes
+ +
Total Time 1 hour 30 minutes
+
+ +
+
+
Cuisine World
+
Course Desserts
+
Diet Vegetarian
+
Difficulty Level Moderate
+
+ + + +
+
Servings 6
+
Units
+

Ingredients

+
+
  • 1 Vanilla Cake or sponge cake – small to medium-sized, homemade or store-brought
  • 200 ml whipping cream or heavy cream
  • ¼ teaspoon vanilla extract or pineapple essence
  • 4 to 5 tablespoons icing sugar or as required
  • 2 to 3 pineapple slices tinned or canned, finely chopped
  • 3 to 4 pineapple slices tinned or canned, for decoration
  • 5 to 6 glazed cherries for decoration or chocolate chips, optional
  • 2 to 3 teaspoons Pineapple Juice for brushing on the cake, homemade or canned, optional
+ +

Instructions
 

Preparation

  • Remove the 2 to 3 pineapple slices from the can draining the syrup in the can itself. Finely chop the pineapple slices and set aside.
  • Slice the cake with a serrated knife from the center carefully into two equal halves.
  • Brush the base slice of the cake with some pineapple juice. This is an optional step. If you do not have pineapple juice, brush with some sugar water.
    To make sugar water, simply dissolve a 2 to 3 teaspoons of sugar in 2 to 3 tablespoons of water. Mix well and use.

Make Cream Frosting

  • In a stand mixer fitted with the wired whip blade, whip the cream and icing sugar along with vanilla extract or pineapple essence, at high speed till you get stiff peaks in the cream.
  • You can also use a hand held electric beater to whip the cream.
  • Taste the whipped cream and add more icing sugar if needed.
  • The cream should have stiff peaks – meaning on turning the bowl the cream should not fall.
  • Mix the finely chopped pineapple with ¼ or ⅓ portion of the whipped cream in a separate bowl.

Make Pineapple Cake

  • Spread the pineapple cream frosting on the base slice evenly..
  • Keep the other cake half over on top.
  • Now spread the remaining whipped cream all over the cake on the top as well as the sides, with a palette knife or spatula evenly.
  • Decorate the top of the cake with a few more pineapple slices.
  • Keep the Pineapple Pastry in the refrigerator for 2 to 3 hours so that the cream icing sets.
  • Serve the Eggless Pineapple Cake immediately.
  • Or you can keep it covered in the fridge and then serve later.
  • It is advisable to finish this Pineapple Cake in a day or two.
+ +

Notes

    +
  • The whipping cream of heavy cream should be fresh. Make sure it has not gone rancid.
  • +
  • You could use fresh pineapple or canned pineapple. If using fresh pineapple, make sure it tastes sweet. If you prefer you can also cook the fresh pineapple cubes with some sugar and water until they are slightly softened but not mushy.
  • +
  • This recipe can be easily scaled up to make for more servings. In this case use two to three small to medium-sized vanilla cake.
  • +
+
+

Nutrition Info (Approximate Values)

+
Nutrition Facts
+
Eggless Pineapple Cake | Pineapple Pastry Recipe
+
+
+ Amount Per Serving
+
+ Calories 495 + Calories from Fat 135 +
+
+
+ % Daily Value* +
+
Fat 15g23%
Saturated Fat 9g56%
Trans Fat 0.4g
Polyunsaturated Fat 1g
Monounsaturated Fat 4g
Cholesterol 38mg13%
Sodium 607mg26%
Potassium 147mg4%
Carbohydrates 87g29%
Fiber 2g8%
Sugar 51g57%
Protein 5g10%
+
Vitamin A 517IU10%
Vitamin B1 (Thiamine) 0.2mg13%
Vitamin B2 (Riboflavin) 0.3mg18%
Vitamin B3 (Niacin) 2mg10%
Vitamin B6 0.1mg5%
Vitamin B12 0.1µg2%
Vitamin C 5mg6%
Vitamin D 1µg7%
Vitamin E 1mg7%
Vitamin K 4µg4%
Calcium 219mg22%
Vitamin B9 (Folate) 64µg16%
Iron 2mg11%
Magnesium 19mg5%
Phosphorus 313mg31%
Zinc 1mg7%
* Percent Daily Values are based on a 2000 calorie diet.
+
+
+
+ + +

This Pineapple Pastry recipe from the archives first published on 2014 has been republished and updated on November 2022.

+

Share This Recipe:

WhatsAppPinShares198

Meet Dassana

Welcome to Dassana's Veg Recipes. I share vegetarian recipes from India & around the World. Having been cooking for decades and with a professional background in cooking & baking, I help you to make your cooking journey easier with my tried and tested recipes showcased with step by step photos & plenty of tips & suggestions.

+
Get My Secrets to Great Indian Food
Sign up for my FREE Beginners Guide to Delicious Indian Cooking

More Vegetarian Recipes You'll Love

+
+
+ + +

Comments are closed.

+

54 Comments

+ + +
    +
  1. +
    + + +
    +

    I tried the cake but because I added water, the cake would cook well and the water was on the top boiling. Can I replace the water for milk?

    +
    + +
    +
      +
    1. +
      + + +
      +

      I did not quite understand the “water on the top boiling” part in your comment. Since everything is mixed to a smooth batter, the water will not separate while baking. You can replace milk with water.

      +
      + +
      +
    2. +
    +
  2. +
  3. + +
      +
    1. + +
    2. +
    +
  4. +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/vegrecipesofindia.com/vegrecipesofindia_2.json b/tests/test_data/vegrecipesofindia.com/vegrecipesofindia_2.json new file mode 100644 index 000000000..7d94a619e --- /dev/null +++ b/tests/test_data/vegrecipesofindia.com/vegrecipesofindia_2.json @@ -0,0 +1,150 @@ +{ + "author": "Dassana Amit", + "canonical_url": "https://www.vegrecipesofindia.com/eggless-black-forest-cake-recipe/", + "site_name": "Dassana's Veg Recipes", + "host": "vegrecipesofindia.com", + "language": "en-US", + "title": "Eggless Black Forest Cake Recipe (Whole Wheat)", + "ingredients": [ + "1 cup whole wheat flour ((leveled) - 120 grams)", + "3 tablespoons cocoa powder", + "½ teaspoon baking soda", + "1 pinch salt", + "¾ cup sugar (- 150 grams, raw sugar or white sugar)", + "1 cup cold water", + "¼ cup oil (- any neutral oil)", + "1 tablespoon lemon juice", + "½ teaspoon vanilla extract (or vanilla essence)", + "1 tablespoon sugar (- raw or white sugar)", + "3 tablespoon water", + "200 ml whipping cream (or heavy cream, cold or chilled)", + "5 tablespoons icing sugar (confectioner's sugar, castor sugar or powdered sugar)", + "¼ cup chopped red cherries (- glazed or canned cherries or fresh sweet cherries)", + "½ cup chocolate shavings (- bittersweet, dark or semi-sweet, add as needed)", + "10 to 11 cherries (- glazed, canned or fresh, add as needed)", + "⅓ to ½ cup chocolate shavings (- bittersweet, dark or semi-sweet, optional)" + ], + "ingredient_groups": [ + { + "ingredients": [ + "1 cup whole wheat flour ((leveled) - 120 grams)", + "3 tablespoons cocoa powder", + "½ teaspoon baking soda", + "1 pinch salt", + "¾ cup sugar (- 150 grams, raw sugar or white sugar)", + "1 cup cold water", + "¼ cup oil (- any neutral oil)", + "1 tablespoon lemon juice", + "½ teaspoon vanilla extract (or vanilla essence)" + ], + "purpose": "For chocolate sponge" + }, + { + "ingredients": [ + "1 tablespoon sugar (- raw or white sugar)", + "3 tablespoon water" + ], + "purpose": "For sugar syrup" + }, + { + "ingredients": [ + "200 ml whipping cream (or heavy cream, cold or chilled)", + "5 tablespoons icing sugar (confectioner's sugar, castor sugar or powdered sugar)" + ], + "purpose": "For cream frosting" + }, + { + "ingredients": [ + "¼ cup chopped red cherries (- glazed or canned cherries or fresh sweet cherries)", + "½ cup chocolate shavings (- bittersweet, dark or semi-sweet, add as needed)" + ], + "purpose": "For layers" + }, + { + "ingredients": [ + "10 to 11 cherries (- glazed, canned or fresh, add as needed)", + "⅓ to ½ cup chocolate shavings (- bittersweet, dark or semi-sweet, optional)" + ], + "purpose": "For top layer and sides" + } + ], + "instructions_list": [ + "Prep", + "First grease a round baking pan of 7.5 inches diameter with oil. You could also line the pan with a parchment paper. Or use two round cake pans (6 inches diameter) and divide the batter equally between two pans.", + "Preheat your oven to 200 degrees Celsius/392 degrees Fahrenheit.", + "Sift whole wheat flour, cocoa powder, salt, baking soda on a plate. Use good quality cocoa powder.", + "In another pan or bowl, take sugar.", + "Add cold water. Stir and mix until all the sugar dissolves.", + "Add oil. Stir briskly for 2 to 3 minutes so that everything is mixed well and emulsifies. Use any neutral oil.", + "Add lemon juice and vanilla extract. Stir and mix again.", + "If you do not have lemon juice, use 1 tablespoon apple cider vinegar or white vinegar.", + "Add the sieved dry ingredients to the wet mixture. Using a wired whisk, mix everything well until you get a smooth batter.", + "Ensure that there are no lumps in the cake batter. The batter has a medium thin consistency.", + "Pour the cake batter in the prepared cake pan or pans.", + "Tap the pan/pans on the countertop, so that the extra air bubbles are let out.", + "Baking chocolate sponge", + "Placing the pans in the center rack of your oven, bake the cakes in the preheated oven at 200 degrees Celsius/392 Fahrenheit for 35 to 40 mins. Since temperatures vary from oven to oven, do keep a check.", + "For baking in a convection mode of microwave oven, preheat the oven at 180 degrees Celsius/356 Fahrenheit degrees for 15 minutes. Then bake the cake at 180 degrees Celsius/356 degrees Fahrenheit for the 30 to 35 minutes.", + "For doneness check the sponge cake with a tooth pick. The tooth pick should come out clean.", + "If the tooth pick is sticky, then place the cake back in the oven and continue to bake for some more minutes.", + "Place the pans on a wired tray and let the cakes cool at room temperature.", + "Note that before frosting let the cake cool completely at room temperature or wrap the cake with a cling film and refrigerate for a couple of hours. You can keep the cake in a covered box and refrigerate.", + "Whipping cream", + "In a stand mixer take the the cold whipping cream and icing sugar/confectioner's sugar/powdered sugar.", + "At the highest speed, whip until the cream becomes stiff. This process will vary depending on the power of your mixer.", + "To check, just invert the bowl. If the cream does not fall, the cream has stiff peaks. Be sure not to over-whip your cream.", + "Remember to chill the cream in the refrigerator at least for a day or two before you use it.", + "If you have used the Indian brand of Amul cream it may take 8 to 10 minutes to whip.", + "Assembling", + "If you have baked one cake, then slice the cake neatly from the center with a large knife or serrated knife. You can also use dental floss to slice the cake into two.", + "Place one layer of the cake with the bottom side facing you. If the top of your cake is domed, then slice the top domed portion evenly so it will lay flat.", + "Make a sugar syrup dissolving 1 tablespoon sugar in 3 tablespoon water.", + "Brush the cake lightly and evenly with this sugar syrup. You can also use rum or wine instead of sugar syrup.", + "Frosting the sponge layers", + "With a spatula spread about ¼ or ⅓ of the whipped cream on top of the cake.", + "Then add a layer of finely chopped glazed red cherries. You can use canned red cherries, glazed cherries or fresh sweet cherries.", + "Sprinkle grated chocolate or chocolate shavings all over.", + "Cover with the second cake and brush the top with the sugar syrup.", + "Spread again ⅓ part of the cream on the top evenly. Spread on the sides of the cake too. If you have a rotating cake stand, this will make frosting the cake much easier.", + "TIP: If you don’t have a cake stand, then use a small, flat plate covered with aluminum foil and place the cake on it before icing. The foil covered plate along with the cake is kept on a heavy board. This way you can easily rotate the foil covered plate while spreading icing on the sides.", + "Making Black Forest Cake", + "Add the remaining whipped cream in a piping bag and use any decorative nozzle. Decorate the cake however you like.", + "Place whole cherries on top of the cake. Top with some chocolate shavings or grated chocolate.", + "Now cover the sides of the cake with the chocolate shavings. Take some chocolate shavings in your fingers. Gently pat and press them on the cream layer with your fingers.", + "Turn the cake stand as you go on placing the chocolate shavings on the cream layer all over the sides. Some chocolate shavings will fall on the the cake stand. Collect these and use them for the decoration on the sides.", + "Cover the cake with a large bowl without it touching the sides and place in the fridge for the cream icing to set. Keep to set for 3 to 4 hours or overnight.", + "When the cream icing has set well, slice and serve eggless black forest cake.", + "Serving Suggestions and Storage", + "Serve black forest cake as is or for a rich luxurious treat pair with a chocolate or vanilla ice cream. Enjoy as an after meal dessert or as a sweet snack anytime of the day.", + "The cake stays well for about 2 to 3 days in the refrigerator. Keep the cake in a covered box or container when storing in the fridge." + ], + "category": "Desserts", + "yields": "10 servings", + "description": "This easy recipe for Eggless Black Forest Cake is not only delicious, it is also made a little healthier by using whole wheat flour. Don’t worry though, this beautiful chocolate layer cake still boasts a fabulous taste and texture that’ll have your guests coming back for more.", + "total_time": 50, + "cook_time": 30, + "prep_time": 20, + "cuisine": "World", + "ratings": 4.81, + "ratings_count": 68, + "nutrients": { + "servingSize": "1 serving", + "calories": "375 kcal", + "fatContent": "21 g", + "saturatedFatContent": "10 g", + "transFatContent": "1 g", + "carbohydrateContent": "45 g", + "sugarContent": "30 g", + "proteinContent": "4 g", + "sodiumContent": "71 mg", + "fiberContent": "4 g", + "cholesterolContent": "29 mg" + }, + "dietary_restrictions": [ + "Vegetarian Diet" + ], + "image": "https://www.vegrecipesofindia.com/wp-content/uploads/2021/05/black-forest-cake-4.jpg", + "keywords": [ + "Black Forest Cake" + ] +} diff --git a/tests/test_data/vegrecipesofindia.com/vegrecipesofindia_2.testhtml b/tests/test_data/vegrecipesofindia.com/vegrecipesofindia_2.testhtml new file mode 100644 index 000000000..ea37a9e81 --- /dev/null +++ b/tests/test_data/vegrecipesofindia.com/vegrecipesofindia_2.testhtml @@ -0,0 +1,1182 @@ + + + + + + + + + + Eggless Black Forest Cake Recipe (Whole Wheat) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Eggless Black Forest Cake Recipe (Whole Wheat)

Step by StepJump to Recipe
+

This easy recipe for Eggless Black Forest Cake is not only delicious, it is also made a little healthier by using whole wheat flour. Don’t worry though, this yummy eggless black forest cake recipe still boasts a fabulous taste and texture that’ll have your guests coming back for more.

+
overhead shot of black forest cake on a black plate with a slice being removed
+ + +

This beautiful chocolate sponge layer cake is easy enough for beginners, but is beautiful enough for even the fanciest of celebrations! Just look at this show-stopping creation: Isn’t it simply gorgeous?

+ + + + + +

What is Black Forest Cake?

+ + + +

Black Forest Cake is a recipe that is based on a traditional German cake known as Schwarzwälder Kirschtorte, which can be roughly translated to mean “Black Forest Cherry Torte.”

+ + + +

I say the recipe is “based on” the German dessert, as German law actually decrees that for something to be called Schwarzwälder Kirschtorte a specific alcoholic liquor derived from sour cherries and known as kirschwasser must be used!

+ + + +

In the simplified, non-German recipe, you can expect layers of chocolate sponge cake, whipped cream and cherries to be present.

+ + + +

My version of this yummy treat is made a bit healthier, as I use exclusively whole wheat flour for my chocolate sponge, and opt to soak my cake layers with simple sugar syrup instead of alcohol.

+ + + +
one slice of black forest cake on a white plate on a black background with a fork taking a bite

Why This Eggless Recipe Works

+ + + +

Preparing beautiful layer Cakes at home is a creative and satisfying endeavor. And trust me when I say, the process is not difficult! It does take a bit of time and you will have some extra pans, bowls and accoutrement that needs to be cleaned, but the result is well worth it. 🙂

+ + + +

This picture perfect black forest gateau has a lovely, light consistency. While the sponge is made from whole wheat flour for a bit of extra nutrition, I can almost guarantee nobody will be able to guess it. And for all of you with an egg allergy, this recipe is completely egg free!

+ + + +

While I love the simplicity of this recipe, you can make life even easier on yourself by purchasing a Chocolate Cake from the store. Simply split it in half, make the whipped cream frosting and get to decorating!

+ + + +

Once you try the combination of chocolate sponge cake with lightly sweetened whipped cream and slightly tart cherries, I can almost guarantee you’ll be hooked. And even though the consistency is angelically light, the final cake weighed in at a total of 700 grams, so you just know that it is loaded with serious flavor.

+ + + +

This eggless black forest cake recipe is my go-to for any celebration, from anniversaries to birthdays, graduations to dinner parties.

+ + + +
overhead shot of one slice of black forest cake on its side on a white plate
Step-by-Step Guide
+

How to Make Eggless Black Forest Cake

+ + + +

Sift Dry Ingredients & Mix Liquid Ingredients

+ + + +

1. Preheat your oven to 200 degrees Celsius/392 degrees Fahrenheit. Brush or grease a 7.5 inches pan or two 6 inches baking pans with oil. Instead of brushing the pans with oil, choose to line them with parchment paper.

+ + + +

2. Sift or sieve 1 cup whole wheat flour, 3 tablespoons cocoa powder, a pinch of salt, ½ teaspoon baking soda onto a plate. Be sure to use good quality cocoa powder.

+ + +
+
mesh sieve with flour, cocoa and other dry ingredients for making black forest cake recipe
+ + +

3. in another pan or bowl, take ¾ cup sugar and add 1 cup cold water.

+ + + +

Tip: Want your cake to be light and spongy? Note that the water has to be cold. Keep the water in the refrigerate for an hour or so to cool it. The cold water helps to give this sponge cake its light and delicate consistency.

+ + +
+
cold water being poured into a mixing bowl with sugar
+ + +

4. Stir so that the sugar dissolves.

+ + +
+
whisking the sugar and water together
+ + +

5. Add ¼ cup neutral tasting oil. I added sunflower oil, but vegetable oil, avocado oil or canola oil will all work.

+ + +
+
oil being added to the sugar water mix
+ + +

6. Stir briskly so that everything is mixed well.

+ + +
+
whisking the oil in the cold water
+ + +

7. Add 1 tablespoon lemon juice. If you do not have lemon juice, use 1 tablespoon apple cider vinegar or white vinegar.

+ + +
+
lemon juice being added to bowl with wet ingredients
+ + +

8. Now add ½ teaspoon vanilla extract.

+ + +
+
vanilla being added
+ + +

9. Stir and mix well briskly for 2 to 3 minutes to get an even emulsified mixture.

+ + + +
more whisking

Make Cake Batter

+ + + +

10. Add the sieved dry ingredients to the wet mixture.

+ + +
+
dry ingredients added to bowl with wet ingredients for making eggless black forest cake
+ + +

11. Using a wired whisk, mix everything well. There should be no lumps in the cake batter.

+ + +
+
whisking the black forest cake batter
+ + +

12. As you can see, the batter is not thick but medium thin.

+ + +
+
completed eggless chocolate sponge batter in a bowl
+ + +

13. Pour the cake batter in a greased cake pan of 7.5 inches diameter x 2 inches height. Or use two round cake pans (6 inches diameter) and divide the batter equally between two pans as I have done.

+ + + +

Tap the pan on the countertop so that the extra air bubbles are let out.

+ + + +
batter divided between two cake pans

Bake Chocolate Sponge

+ + + +

14. Place the pans in the center rack of your oven. Bake the cakes in a preheated oven for 200 degrees Celsius/392 Fahrenheit for 35 to 40 mins. Since temperatures vary from oven to oven, do keep an eye on your cakes.

+ + + +

For baking in a convection mode of microwave oven, preheat the oven at 180 degrees celsius for 15 minutes. Then bake the cake at 180 degrees celsius for 30 to 35 minutes.

+ + + +

For doneness, check the cake with a toothpick. The toothpick should come out clean. If the toothpick is sticky, then place the cake back in the oven and continue to bake for some more minutes.

+ + + +

Tip 1: Only open the oven door after ¾ of the cake is baked. If you keep opening the oven door many times, high chances are that your cake will sunk in the center.

+ + + +

Tip 2: Working ahead of schedule? Feel free to stop here and wrap/refrigerate your cakes overnight, or freeze for up to 1 month before assembling and frosting.

+ + +
+
toothpick testing the doneness of the chocolate sponge cake
+ + +

Whip Cream

+ + + +

Before frosting, let the cakes cool completely. Place the pans on a wired tray and let the cakes cool at room temperature. I make the cakes a day ahead and refrigerate them in a covered container.

+ + + +

15. In a bowl take 200 ml chilled whipping cream and 5 tablespoons icing sugar (a.k.a confectioner’s sugar or powdered sugar).

+ + + +

Note: If you live in India and do not have access to whipping cream, you can use the Amul brand of heavy whipping cream. But with Amul fresh cream, you will get soft peaks in the cream. You can also use heavy cream of any other brand.

+ + +
+
cream and powdered sugar in a mixing bowl
+ + +

16. At the highest speed, whip until the cream becomes stiff. This process will vary depending on the power of your mixer and the fat content in the cream.

+ + + +

It may take 8 to 10 minutes if you use the Indian brand of Amul cream. To check, just invert the bowl. If the cream does not fall, the cream has stiff peaks.

+ + + +

Tip: Be sure not to over-whip your cream. While you can use a stand mixer for this process, I recommend using a hand mixer so you don’t walk away from your whipped cream and return to an accidental bowl of butter. When the cream reaches stiff peaks, STOP.

+ + +
+
hand mixer beating the cream and sugar
+ + +

17. Here’s the consistency of the cream.

+ + +
+
finished bowl of cream whipped to stiff peaks for frosting black forest cake
+ + +

Assemble & Frost Sponge Layers

+ + + +

Note: If you have baked one cake, then slice the cake neatly from the center with a large knife or serrated knife. You can also use dental floss to slice the cake into two. If crumbs fall, collect them (they’re delicious!) and save them for when you decorate the cake.

+ + + +

18. Place one layer of the cake with the bottom side facing you. NOTE: If the top of your cake is domed, then slice the top domed portion evenly so it will lay flat.

+ + + +

Brush the cake lightly and evenly with sugar syrup. To make sugar syrup, dissolve 1 tablespoon sugar with 3 tablespoon water. You can also use rum or wine instead of water.

+ + +
+
brushing bottom layer of chocolate sponge with sugar syrup
+ + +

19. Now with a spatula spread about ¼ or ⅓ of the whipped cream on top of the cake.

+ + +
+
adding whipped cream on top of the first chocolate cake layer
+ + +

20. Then add a layer of finely chopped red cherries. You can use canned red cherries, glazed cherries or fresh sweet cherries.

+ + + +

Do not use canned maraschino cherries as they have a lot of preservatives added to them and smell awful according to me.

+ + + +

If you live in India, use glazed red cherries or you can use candied Karonda berries. You will find the Indian variety of candied karonda berries in most shops. They are also called karonda murabba in Hindi.

+ + +
+
chopped cherries sprinkled atop the first layer of the black forest cake
+ + +

21. Sprinkle grated chocolate or chocolate shavings all over. I always grate or shave a bar of dark chocolate. Use any good quality semi-sweet, dark or bitter-sweet chocolate.

+ + +
+
chocolate shavings added on top of the cherry layer
+ + +

22. Cover with the second cake and brush the top with the sugar syrup.

+ + +
+
second layer of chocolate sponge being brushed with sugar syrup
+ + +

23. Spread again ⅓ part of the cream on the top evenly. Spread on the sides of the cake too. If you have a rotating cake stand, this will make frosting the cake much easier.

+ + + +

Tip: If you don’t have a cake stand, then use a small, flat plate covered with aluminum foil and place the cake on it before icing. The foil covered plate along with the cake is kept on a heavy board. This way you can easily rotate the foil covered plate while spreading icing on the sides.

+ + +
+
more whipped cream being added to the top layer with an offset spatula
+ + +

Make Eggless Black Forest Cake

+ + + +

24. Add the remaining whipped cream in a piping bag and use any decorative nozzle. Decorate the cake however you like – I simply piped some rosettes around the top edge.

+ + + +

Don’t worry about design flaws as we will be adding more grated chocolate on the cakes, so any imperfections can be hidden!

+ + +
+
piping rosettes of whipped cream around the top of the frosted eggless black forest cake
+ + +

25. Place whole cherries on the cake. Top with some chocolate shavings or grated chocolate.

+ + + +

You can add the amount of cherries you want to make a neat looking eggless black forest cake. I suggest using one cherry per serving, as this will help you cut the cake evenly.

+ + +
+
whole cherries and chocolate shavings added to the top of the black forest cake
+ + +

26. Now cover the sides of the cake with the chocolate shavings. Cup your fingers and take some chocolate shavings in them. Gently pat and press them on the cream layer with your fingers.

+ + + +

Turn the cake stand as you go on placing the chocolate shavings on the cream layer all over the sides. Some chocolate shavings will fall on the the cake stand. Collect these and use them for the decoration on the sides.

+ + +
+
chocolate shavings being added to the side of the eggless black forest cake
+ + +

27. Cover the eggless black forest cake with a large bowl without it touching the sides and place in the fridge for the cream icing to set. Keep to set for 3 to 4 hours or overnight.

+ + +
+
glass bowl placed over the decorated black forest cake to protect it during refrigeration
+ + +

28. When the cream icing has set well, slice and serve eggless black forest cake. Enjoy the compliments of your impressed friends and family. Good work!

+ + +
+
overhead shot of a slice of black forest cake on its side on a white dessert plate with a silver fork
+ + +

Serving Suggestions and Storage

+ + + +

Serve black forest cake as is or for a rich luxurious treat pair with a chocolate or vanilla ice cream. Enjoy as an after meal dessert or as a sweet snack anytime of the day.

+ + + +

For birthdays or any any other celebrations , if you plan to make a tall layer or a large cake, scale the recipe ingredients proportionately. Bake in two 7.5 inches pan or four 6 inches pans.

+ + + +

Do consider your oven size so that it accommodates all the pans easily. All the pans have to be kept in the center rack of the oven for even baking.

+ + + +

The eggless black forest cake stays well for about 2 to 3 days in the refrigerator. Keep the cake in a covered box or container when storing in the fridge.

+ + + +

Expert Tips and Tricks

+ + + +
  • To make the work of building a beautiful layer cake seem less daunting, I suggest you split the tasks into two days. Bake the cake a day before (or up to one ahead of time if you have a freezer!) and do the frosting the next day. The cake can be refrigerated overnight (or frozen up to one month) and the frosting can be done the next day.
  • + + + +
  • If you don’t have a cake stand, then use a small flat plate covered with aluminum foil and place the cake on it before icing. The foil covered plate along with the cake is kept on a heavy board. This way you can easily rotate the foil covered plate while spreading icing on the sides.
  • + + + +
  • Use chilled cream and equipment for making whipped cream. You want to whip the cream in as little time as possible to prevent a grainy texture, and keeping your equipment cold helps the cream stay cold while you work. You need the cream to be cold so that it can emulsify properly and the fat can hold shape to keep the air in the cream.
  • + + + +
  • Want your cake to be light and spongy? Be sure to use cold water as the recipe indicates. Temperature is very important when it comes to the chemical reactions of baking, and cold water is important to creating a spongy consistency in this eggless sponge cake.
  • + + + +
  • Keep the serving platter clean from decorating by laying small strips of parchment down around the edges of the cake. When you’re done decorating, pull them out and your platter will look perfect!
  • + + + +
  • Whole wheat flour works nicely here, but if you are not a fan, feel free to include all-purpose flour or pastry flour. 
  • +

FAQs

+ + + +
What is the difference between chocolate cake and Black Forest cake?

The easiest way I can answer this is with the old squares and rectangles analogy. You know how all squares are rectangles, but not all rectangles are squares? Well, in this case the black forest cake is the square and chocolate cake is the rectangle.

Black forest cake is made with chocolate sponge cake, but requires whipped cream, cherries and frosting to be “black forest” cake.

Chocolate cake, on the other hand, can encompass many recipes with many kinds of fillings and frostings. So – all black forest cakes are chocolate cakes, but the reverse is not true.

How long will black forest cake last?

Since black forest cake recipe is made with a whipped cream frosting, it has a slightly shorter shelf life than other cakes. Once assembled, I recommend eating it within 2 to 3 days. Keep any leftovers in your fridge.

What kind of cherries are best for making black forest cake?

In my opinion, any cherries in syrup will do so long as they are not maraschino cherries. I know some may disagree with me on this point, but the artificial coloring and flavoring of maraschinos really puts me off.

Morello cherries, sour cherries, sweet canned cherries, glazed cherries or even the Indian glazed karonda berries are my personal preference.

+ + +

More Eggless Cakes To Try!

+
+

Please be sure to rate the recipe in the recipe card or leave a comment below if you have made it. For more vegetarian inspirations, Sign Up for my emails or follow me on Instagram, Youtube, Facebook, Pinterest or Twitter.

+
overhead shot of black forest cake on a black plate with a slice being removed
+

Eggless Black Forest Cake Recipe (Whole Wheat)

+
+ +
+
This easy recipe for Eggless Black Forest Cake is not only delicious, it is also made a little healthier by using whole wheat flour. Don’t worry though, this beautiful chocolate layer cake still boasts a fabulous taste and texture that’ll have your guests coming back for more.
+
+
4.81 from 68 votes
+
+ + +
+
+
Prep Time 20 minutes
+
Cook Time 30 minutes
+ +
Total Time 50 minutes
+
+ +
+
+
Cuisine World
+
Course Desserts
+
Diet Vegetarian
+
Difficulty Level Moderate
+
+ + + +
+
Servings 10 cake wedges
+
Units
+

Ingredients

+
+

For chocolate sponge

  • 1 cup whole wheat flour (leveled) – 120 grams
  • 3 tablespoons cocoa powder
  • ½ teaspoon baking soda
  • 1 pinch salt
  • ¾ cup sugar – 150 grams, raw sugar or white sugar
  • 1 cup cold water
  • ¼ cup oil – any neutral oil
  • 1 tablespoon lemon juice
  • ½ teaspoon vanilla extract or vanilla essence

For sugar syrup

  • 1 tablespoon sugar – raw or white sugar
  • 3 tablespoon water

For cream frosting

  • 200 ml whipping cream or heavy cream, cold or chilled
  • 5 tablespoons icing sugar confectioner's sugar, castor sugar or powdered sugar

For layers

  • ¼ cup chopped red cherries – glazed or canned cherries or fresh sweet cherries
  • ½ cup chocolate shavings – bittersweet, dark or semi-sweet, add as needed

For top layer and sides

  • 10 to 11 cherries – glazed, canned or fresh, add as needed
  • ⅓ to ½ cup chocolate shavings – bittersweet, dark or semi-sweet, optional
+ +

Instructions
 

Prep

  • First grease a round baking pan of 7.5 inches diameter with oil. You could also line the pan with a parchment paper. Or use two round cake pans (6 inches diameter) and divide the batter equally between two pans.
  • Preheat your oven to 200 degrees Celsius/392 degrees Fahrenheit.
  • Sift whole wheat flour, cocoa powder, salt, baking soda on a plate. Use good quality cocoa powder.
  • In another pan or bowl, take sugar.
  • Add cold water. Stir and mix until all the sugar dissolves.
  • Add oil. Stir briskly for 2 to 3 minutes so that everything is mixed well and emulsifies. Use any neutral oil.
  • Add lemon juice and vanilla extract. Stir and mix again.
  • If you do not have lemon juice, use 1 tablespoon apple cider vinegar or white vinegar.
  • Add the sieved dry ingredients to the wet mixture. Using a wired whisk, mix everything well until you get a smooth batter.
  • Ensure that there are no lumps in the cake batter. The batter has a medium thin consistency.
  • Pour the cake batter in the prepared cake pan or pans.
  • Tap the pan/pans on the countertop, so that the extra air bubbles are let out.

Baking chocolate sponge

  • Placing the pans in the center rack of your oven, bake the cakes in the preheated oven at 200 degrees Celsius/392 Fahrenheit for 35 to 40 mins. Since temperatures vary from oven to oven, do keep a check. 
  • For baking in a convection mode of microwave oven, preheat the oven at 180 degrees Celsius/356 Fahrenheit degrees for 15 minutes. Then bake the cake at 180 degrees Celsius/356 degrees Fahrenheit for the 30 to 35 minutes.
  • For doneness check the sponge cake with a tooth pick. The tooth pick should come out clean. 
  • If the tooth pick is sticky, then place the cake back in the oven and continue to bake for some more minutes.
  • Place the pans on a wired tray and let the cakes cool at room temperature.
  • Note that before frosting let the cake cool completely at room temperature or wrap the cake with a cling film and refrigerate for a couple of hours. You can keep the cake in a covered box and refrigerate.

Whipping cream

  • In a stand mixer take the the cold whipping cream and icing sugar/confectioner's sugar/powdered sugar.
  • At the highest speed, whip until the cream becomes stiff. This process will vary depending on the power of your mixer.
  • To check, just invert the bowl. If the cream does not fall, the cream has stiff peaks. Be sure not to over-whip your cream.
  • Remember to chill the cream in the refrigerator at least for a day or two before you use it.
  • If you have used the Indian brand of Amul cream it may take 8 to 10 minutes to whip.

Assembling

  • If you have baked one cake, then slice the cake neatly from the center with a large knife or serrated knife. You can also use dental floss to slice the cake into two.
  • Place one layer of the cake with the bottom side facing you. If the top of your cake is domed, then slice the top domed portion evenly so it will lay flat.
  • Make a sugar syrup dissolving 1 tablespoon sugar in 3 tablespoon water.
  • Brush the cake lightly and evenly with this sugar syrup. You can also use rum or wine instead of sugar syrup.

Frosting the sponge layers

  • With a spatula spread about ¼ or ⅓ of the whipped cream on top of the cake.
  • Then add a layer of finely chopped glazed red cherries. You can use canned red cherries, glazed cherries or fresh sweet cherries.
  • Sprinkle grated chocolate or chocolate shavings all over.
  • Cover with the second cake and brush the top with the sugar syrup.
  • Spread again ⅓ part of the cream on the top evenly. Spread on the sides of the cake too. If you have a rotating cake stand, this will make frosting the cake much easier.
  • TIP: If you don’t have a cake stand, then use a small, flat plate covered with aluminum foil and place the cake on it before icing. The foil covered plate along with the cake is kept on a heavy board. This way you can easily rotate the foil covered plate while spreading icing on the sides.

Making Black Forest Cake

  • Add the remaining whipped cream in a piping bag and use any decorative nozzle. Decorate the cake however you like.
  • Place whole cherries on top of the cake. Top with some chocolate shavings or grated chocolate.
  • Now cover the sides of the cake with the chocolate shavings. Take some chocolate shavings in your fingers. Gently pat and press them on the cream layer with your fingers.
  • Turn the cake stand as you go on placing the chocolate shavings on the cream layer all over the sides. Some chocolate shavings will fall on the the cake stand. Collect these and use them for the decoration on the sides.
  • Cover the cake with a large bowl without it touching the sides and place in the fridge for the cream icing to set. Keep to set for 3 to 4 hours or overnight.
  • When the cream icing has set well, slice and serve eggless black forest cake.

Serving Suggestions and Storage

  • Serve black forest cake as is or for a rich luxurious treat pair with a chocolate or vanilla ice cream. Enjoy as an after meal dessert or as a sweet snack anytime of the day.
  • The cake stays well for about 2 to 3 days in the refrigerator. Keep the cake in a covered box or container when storing in the fridge.
+

Video

+
+
+
+

Notes

  • Prep Ahead: To make the work of building a beautiful layer cake seem less daunting, I suggest you split the tasks into two days. Bake the cake a day before (or up to one ahead of time if you have a freezer!) and do the frosting the next day. The cake can be refrigerated overnight (or frozen up to one month) and the frosting can be done the next day.
  • +
  • No cake stand? Not a problem: If you don’t have a cake stand, then use a small flat plate covered with aluminum foil and place the cake on it before icing. The foil covered plate along with the cake is kept on a heavy board. This way you can easily rotate the foil covered plate while spreading icing on the sides.
  • +
  • Cold cream: Use chilled cream and equipment for making whipped cream. You want to whip the cream in as little time as possible to prevent a grainy texture, and keeping your equipment cold helps the cream stay cold while you work. You need the cream to be cold so that it can emulsify properly and the fat can hold shape to keep the air in the cream.
  • +
  • For light and spongy cake: Be sure to use cold water as the recipe indicates. Temperature is very important when it comes to the chemical reactions of baking, and cold water is important to creating a spongy consistency in this eggless sponge cake.
  • +
  • Parchment tip: Keep the serving platter clean from decorating by laying small strips of parchment down around the edges of the cake. When you’re done decorating, pull them out and your platter will look perfect.
  • +
  • Cherries: In my opinion, any cherries in syrup will do so long as they are not maraschino cherries. I know some may disagree with me on this point, but the artificial coloring and flavoring of maraschinos really puts me off. Morello cherries, sour cherries, sweet canned cherries, glazed cherries or even the Indian karonda berries are my personal preference.
  • +
  • Flour: Whole wheat flour works nicely here, but if you are not a fan, feel free to include all-purpose flour or pastry flour. 
  • +
  • +Making cake for birthdays: If you wish to make a tall layer or a large cake, scale the recipe ingredients proportionately. Bake in two 7.5 inches pan or four 6 inches pans. Do consider your oven size so that it accommodates all the pans easily. All the pans have to be kept in the center rack of the oven for even baking.
    +
  • +
+
+

Nutrition Info (Approximate Values)

+
Nutrition Facts
+
Eggless Black Forest Cake Recipe (Whole Wheat)
+
+
+ Amount Per Serving
+
+ Calories 375 + Calories from Fat 189 +
+
+
+ % Daily Value* +
+
Fat 21g32%
Saturated Fat 10g63%
Trans Fat 1g
Cholesterol 29mg10%
Sodium 71mg3%
Potassium 218mg6%
Carbohydrates 45g15%
Fiber 4g17%
Sugar 30g33%
Protein 4g8%
+
Vitamin A 310IU6%
Vitamin B1 (Thiamine) 1mg67%
Vitamin B2 (Riboflavin) 1mg59%
Vitamin B3 (Niacin) 1mg5%
Vitamin B6 1mg50%
Vitamin B12 1µg17%
Vitamin C 1mg1%
Vitamin D 1µg7%
Vitamin E 3mg20%
Vitamin K 3µg3%
Calcium 35mg4%
Vitamin B9 (Folate) 7µg2%
Iron 2mg11%
Magnesium 62mg16%
Phosphorus 119mg12%
Zinc 1mg7%
* Percent Daily Values are based on a 2000 calorie diet.
+
+
+
+ + +

This Black Forest Cake recipe from the archives (December 2014) has been republished and updated on 22 May 2021.

+

Share This Recipe:

WhatsAppPinShares865

Meet Dassana

Welcome to Dassana's Veg Recipes. I share vegetarian recipes from India & around the World. Having been cooking for decades and with a professional background in cooking & baking, I help you to make your cooking journey easier with my tried and tested recipes showcased with step by step photos & plenty of tips & suggestions.

+
Get My Secrets to Great Indian Food
Sign up for my FREE Beginners Guide to Delicious Indian Cooking

More Vegetarian Recipes You'll Love

+
+ + +

Comments are closed.

+

333 Comments

+ + +
    +
  1. + +
  2. +
  3. +
    + + +
    +

    This is just incredibly amazing! If you never tried his recipe, you should definitely try! That’s awesome! The taste is just soo nice!5 stars

    +
    + +
    +
      +
    1. + +
    2. +
    +
  4. +
  5. +
    + + +
    +

    Hi Dassana. I am looking forward to making this Black Forest cake. It would be great if you could post the picture of your hand mixer. Thank you

    +
    + +
    +
      +
    1. + +
    2. +
    +
  6. +
  7. +
    + + +
    +

    Hello mam,
    +Can I use normal white sugar instead of icing sugar in tho recipe?
    +If yes, how much time I have to beat both amul cream and white sugar?

    +

    In general for icing, should we need to make the powder of white sugar(in blender)?

    +
    + +
    +
      +
    1. +
      + + +
      +

      You will need powdered sugar. So you can powder white sugar in a mixie or blender. Sieve it and then add in the cream. The time to beat cream will be same irrespective of the type of sugar added. To stabilize the cream frosting, you can add 1 teaspoon corn flour.

      +
      + +
      +
        +
      1. +
        + + +
        +

        Thanq mam…one more simple doubt

        +

        Can we replace wheat with maida in this recipe?

        +
        + +
        +
          +
        1. + +
        2. +
        +
      2. +
      +
    2. +
    +
  8. +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 58c329b4876cc1fe55b4ae1620a13d0f37e257fa Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:01:06 -0700 Subject: [PATCH 10/19] Ingredient grouping support for wellplated (#1281) --- recipe_scrapers/wellplated.py | 9 + .../{wellplated.json => wellplated_1.json} | 0 ...lplated.testhtml => wellplated_1.testhtml} | 2740 ++++++++--------- .../wellplated.com/wellplated_2.json | 99 + .../wellplated.com/wellplated_2.testhtml | 2528 +++++++++++++++ 5 files changed, 4006 insertions(+), 1370 deletions(-) rename tests/test_data/wellplated.com/{wellplated.json => wellplated_1.json} (100%) rename tests/test_data/wellplated.com/{wellplated.testhtml => wellplated_1.testhtml} (99%) create mode 100644 tests/test_data/wellplated.com/wellplated_2.json create mode 100644 tests/test_data/wellplated.com/wellplated_2.testhtml diff --git a/recipe_scrapers/wellplated.py b/recipe_scrapers/wellplated.py index d4e52fb60..8f50d1d30 100644 --- a/recipe_scrapers/wellplated.py +++ b/recipe_scrapers/wellplated.py @@ -1,4 +1,5 @@ from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients class WellPlated(AbstractScraper): @@ -8,3 +9,11 @@ def host(cls): def cuisine(self): return self.schema.cuisine().replace(",", ", ") + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".wprm-recipe-group-name", + ".wprm-recipe-ingredient", + ) diff --git a/tests/test_data/wellplated.com/wellplated.json b/tests/test_data/wellplated.com/wellplated_1.json similarity index 100% rename from tests/test_data/wellplated.com/wellplated.json rename to tests/test_data/wellplated.com/wellplated_1.json diff --git a/tests/test_data/wellplated.com/wellplated.testhtml b/tests/test_data/wellplated.com/wellplated_1.testhtml similarity index 99% rename from tests/test_data/wellplated.com/wellplated.testhtml rename to tests/test_data/wellplated.com/wellplated_1.testhtml index bbbfd07f5..025ddde61 100644 --- a/tests/test_data/wellplated.com/wellplated.testhtml +++ b/tests/test_data/wellplated.com/wellplated_1.testhtml @@ -1,1371 +1,1371 @@ - - - - Egg Fried Rice {One Pan + 15 Minutes} – WellPlated.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- the well plated cookbook

The Well Plated Cookbook is now available!

-
-

Egg Fried Rice

This post may contain affiliate links. Please read our disclosure policy.

-

Today, I’m sharing my top tips to make healthy Egg Fried Rice at home that tastes BETTER than what you can get at a restaurant. It’s true!

- - - -
easy egg fried rice in a skillet
- - - - -

Why You’ll Love This Fried Rice Recipe

- - - -

Learning how to make homemade egg fried rice is an easy and valuable life skill.

- - - -
    -
  • FAST. Mastering this simple technique not only yields tasty results but adds an easy, flavorful meal to your recipe arsenal that can be ready in 15 minutes flat.
  • - - - -
  • Fully Loaded. Unlike the disappointing, lackluster versions of fried rice you’ve experienced in the past, this recipe doesn’t skimp on the good stuff: veggies and eggs.
  • - - - -
  • Simple, Flexible Ingredients. The ingredients to make fried rice couldn’t be easier. This simple recipe requires any vegetables you have on hand (even frozen), egg (plus any protein you like), rice (leftover rice is best), and a homemade sauce that’s just two ingredients!
  • - - - -
  • Nutritious. Fried rice can be good for you! Because you can control the sugar and oil, you can use what you need and skip what you don’t.
  • - - - -
  • Authentic Flavor. With a few easy tips (use cold rice; a bit of butter), you can make restaurant-style fried rice from scratch, no sweat.
  • - - - -
  • Leftover Friendly. Once you learn how to make it, you’ll want to go ahead and double this recipe. It’s the trifecta of sweet, sticky, and savory, and it tastes even better reheated.
  • -
- - - -

Ditch the takeout menu and grab your wok (or skillet). It’s time to learn how to make the best fried rice recipe!

- - - -
a close of up Chinese egg fried rice with vegetables
- - -

5 Star Review

Absolutely DELICIOUS. This is such a flexible dish too, you can literally mold it to whatever flavor profile you want.
-Erin’s recipes are seriously OUT OF THIS WORLD. I wish I could give this more than 5 stars.

-— Stephen —
- - -

The Best Rice for Fried Rice

- - - -

If you take one thing away from this post, let it be this: the best rice to use when making homemade fried rice is leftover, COLD rice.

- - - -
    -
  • Cold rice works best for fried rice because it is drier, which keeps the fried rice from becoming soggy.
  • - - - -
  • It also helps the individual rice grains separate from
  • -
- - - -

As far as which type of rice to use, that’s up to you! You can choose brown or white rice.

- - - - - - -
-
a bowl of homemade healthy fried rice
- - -

How to Make Egg Fried Rice from Scratch

- - - -

The magic of this recipe’s tastiness and ease lies in its fusion of fresh ingredients with pantry and freezer staples.

- - - -

The ingredients for fried rice are simple, but they come together to create something truly addictive.

- - - -
- - - -

The Ingredients

- - - -
    -
  • Leftover COLD Rice. I cannot stress the COLD part enough, so I’m stating it here again. You must cool rice to make the best fried rice. Cold rice is the secret to great fried rice. You do cook rice before frying it, so go ahead and put the rice on the stove now. You’ll want it at the ready when it’s time to cook dinner!
  • - - - -
  • Vegetables. Unlike the takeout version, you’ll find a heap of colorful vegetables in every forkful of this fried rice recipe. For freshness and color, I used red bell pepper. For speed and ease, I added a 10-ounce bag of frozen peas and carrots. The carrots and peas tasted fantastic, and I spent exactly zero minutes chopping them.
  • -
- - -

Market Swap

- -

You can use any mix of fresh OR FROZEN vegetables that you prefer! Here are a few other tasty veggies that work well in homemade fried rice:

- - - -
    -
  • Pea Pods
  • - - - -
  • Broccoli
  • - - - -
  • Slice Onions
  • - - - -
  • Eggplant
  • - - - -
  • Yellow Squash
  • - - - -
  • Zucchini
  • - - - -
  • Mushrooms
  • - - - -
  • Corn
  • - - - -
  • Green beans
  • -
- -
- - -
    -
  • Butter. Another of my best-ever fried rice secrets! Adding butter to fried rice is a pro tip that no restaurant will tell you but is oh-so-true.
  • - - - -
  • Oyster Sauce. Think of oyster sauce as an umami bomb of instant flavor. It’s thick, sticky, and its flavor is rich and complex. It coats every grain of rice with unmistakable flair. You can find oyster sauce in the Asian food aisle of any major grocery store.
  • - - - -
  • Soy Sauce. More umami. I recommend low-sodium soy sauce so that the rice doesn’t become too salty and you can better control its flavor.
  • -
- - -

Dietary Note!

- -

For a gluten-free fried rice recipe, swap the soy sauce for tamari or coconut aminos. I would also suggest checking the label of your oyster sauce since some brands may add gluten-containing additives.

- -
- - -
    -
  • Edamame. A quick and easy way to add protein to vegetable fried rice. Look for shelled edamame in the freezer section of the grocery store.
  • - - - -
  • Green Onions + Garlic. For freshness, bite, and zing.
  • - - - -
  • Eggs. Fried rice with egg is classic, plus it adds more protein.
  • -
- - -

Substitution Tip

- -

For fried rice without egg, simply omit it from the recipe. If you have an egg allergy and would like something with a similar texture, try adding pieces of Air Fryer Tofu.

- -
- - -

The Directions

- - - -
    -
  1. Mix the oyster sauce and soy sauce. That good umami flavor.
  2. -
- - - -
a pan with scrambled eggs for fried rice
- - - -
    -
  1. Scramble the eggs in butter.
  2. -
- - - -
chopped bell peppers in a wok
- - - -
    -
  1. Sauté fresh veggies over medium-high heat in peanut oil or a similar high-temp cooking oil until crisp-tender.
  2. -
- - - -
a wok with carrots, edamame, and bell peppers
- - - -
    -
  1. Add the frozen vegetables and edamame. Stir constantly for 30 seconds, then add the garlic.
  2. -
- - - -
a wok with rice and vegetables
- - - -
    -
  1. Add the brown rice and pour in the fried rice sauce. Stir until the rice is heated through and coated with saucy goodness. Fold in the eggs and scallions, and serve. ENJOY!
  2. -
- - -
-
a bowl with homemade fried rice with leftover rice and vegetables
- - -

Recipe Variations

- - - -

This plain fried rice tastes anything but plain! That said, if you want to change it up, here are some ideas:

- - - -
    -
  • Chicken Fried Rice. You can use chicken breasts or thighs.
  • - - - -
  • Pork Fried Rice. Pork is another lean protein option you can try.
  • - - - -
  • Shrimp Fried Rice. Quick-cooking shrimp add virtually zero time to this recipe.
  • - - - -
  • Pineapple Fried Rice. When you add your chopped red bell pepper to the pan, also add about 2 cups of chopped fresh or drained canned pineapple. YUM!
  • - - - -
  • Low Carb Fried Rice. You can also swap out the brown rice entirely! Try this Cauliflower Fried Rice.
  • - - - -
  • Spicy Fried Rice. Add a big pinch of red pepper flakes or top with sriracha.
  • -
- - - -

Recipe Tips and Tricks

- - - -
    -
  • Don’t Overdo the Soy Sauce. If you’re anything like I was as a kid, you loaded on the soy sauce onto your Stir Fry Noodles until it was swimming in a pool. While it may be tempting to keep adding more soy sauce while cooking, stick to the 1 tablespoon (I promise it will have plenty of flavor). You can always add a drizzle on your portion later.
  • - - - -
  • Use a Large Pan or Wok. Make sure your pan is big enough to cook all the ingredients evenly and stir easily without spills. Nothing worse than losing some of this precious dish off the side of the pan!
  • - - - -
  • Keep Your Pan HOT. A hot pan is critical for achieving that crispy, toasty deliciousness that comes from perfect fried rice. If your pan isn’t hot enough, you may end up steaming everything instead of frying it.
  • - - - -
  • Do Not Stir the Eggs until They’ve Started to Set. Use a rubber spatula to break the eggs into little, bite-sized pieces. Take care not to overcook!
  • - - - -
  • Chop the Veggies Small. Whichever vegetables you choose, to make this recipe move quickly and ensure the vegetables cook evenly, chop the vegetables small. (Also true for Cabbage Stir Fry.)
  • - - - -
  • Load on the Veggies. Unlike the takeout version, this homemade fried rice can be hearty enough to stand on its own without a separate main dish. Toss in whatever veggies you and your family love, and this dish will become colorful, flavorful, and filling!
  • - - - -
  • USE COLD RICE. If it feels like I’m obsessing over this point, it’s because I am. This is how you can make fried rice better. (Save the freshly-cooked rice for Broccoli Rice Casserole.)
  • -
- - -
-
a bowl with egg and vegetable for simple homemade fried rice
- - -

Storage Tips

- - - -
    -
  • To Store. Let your cooked homemade fried rice cool to room temperature, then place it in the fridge in an airtight storage container for up to 5 days.
  • - - - -
  • To Reheat. Gently rewarm leftovers in a large skillet over medium-low heat until hot. You can also place leftovers on a microwave-safe plate or in a bowl and microwave for 1 minute or until warmed through.
  • - - - -
  • To Freeze. Once your homemade fried rice has cooled, place it in an airtight, freezer-safe storage container or zip-top bag, removing as much air as possible. Freeze for up to 3 months. Let thaw overnight in the refrigerator, then reheat as directed.
  • -
- - -
-
Chinese fried rice restaurant style in a bowl
- - -

What to Serve with Egg Fried Rice

- - - -

Thanks to the heap of vegetables, edamame, egg, and whole grains, this recipe is substantial and well-rounded enough to be relatively good for you as a main dish too.

- - - -

That said, if you’d like to serve it as a side or part of a larger meal, here are some ideas:

- - - - - - - - - - - -
    -
  • Wok. If you love making stir fry recipes, adding a wok to your kitchen cookware collection is well worth the investment.
  • - - - -
  • Chopsticks. Adding a pair of fun and fancy chopsticks takes takeout-style meals at home to the next level (I also love these are dishwasher safe).
  • - - - -
  • Glass Measuring Cup. For whisking together that yummy, simple fried rice sauce.
  • -
- - - -

I often lovingly refer to this sort of Asian cuisine-inspired recipe as “takeout, fake out” but the nickname doesn’t feel appropriate this time.

- - - -

Honestly, this egg fried rice is so delicious, standard takeout fried rice or hibachi fried rice will never do it for you again!

- - -
- -
-

Egg Fried Rice

-
4.98 from 35 votes
- -
How to make easy egg fried rice from scratch that's better than takeout! Simple, healthy ingredients and ready in 15 minutes!
-
-
-
Prep: 10 minutes
-
Cook: 15 minutes
-
Total: 25 minutes
-
-
-
Servings: 6 servings
-
- -
-
- -

Ingredients
  

  • 1/4 cup oyster sauce*
  • 1 tablespoon soy sauce (I use low-sodium) plus additional to taste
  • 2 tablespoons unsalted butter divided, or butter with canola oil spread
  • 3 large eggs lightly beaten
  • 1 tablespoon canola oil
  • 1 large red, yellow, or orange bell pepper cut into 1/4-inch dice (about 1 1/4 cups)
  • 1 bag frozen peas and carrots thawed (12 ounces)
  • 1 cup frozen shelled edamame thawed (optional, but great for extra protein)
  • 2 cloves garlic minced
  • 2 1/2 cups COLD cooked brown rice break up large clumps with your fingers
  • 1/2 cup chopped green onions about 3 medium
  • Red pepper flakes Sriracha, or hot sauce of choice (optional)
-
-
-

Instructions
 

  • In a small bowl, stir together the oyster sauce and soy sauce. Set aside. Grab a small bowl and a large, flexible rubber spatula, and keep both handy.
  • Heat a 12-inch nonstick skillet over medium heat until hot, about 2 minutes. Add 1/2 tablespoon butter and swirl to coat the bottom of the pan. Add the eggs, and cook without stirring until they barely start to set, about 20 seconds. With your spatula, scramble and break the eggs into little, bite-sized pieces. Continue to cook, stirring constantly, until eggs are just cooked through but not yet browned, about 1 additional minute. Transfer eggs to the small bowl and set aside.
  • Return the skillet to the heat, and increase the heat to high. Let the skillet warm until it is nice and hot, about 1 minute. Add the canola oil, and swirl to coat. Add the diced bell pepper, and cook until it is crisp-tender, about 4 minutes.
  • Add the remaining 1 1/2 tablespoons butter, peas and carrots, and edamame. Cook, stirring constantly, for 30 seconds. Stir in the garlic and cook until fragrant, about 30 seconds (do not let the garlic burn!).
  • Add the brown rice and the oyster sauce mixture. Continue cooking, stirring constantly and breaking up any remaining rice clumps, until the mixture is heated through, about 3 minutes.
  • Add reserved eggs and green onions. Cook and stir until the mixture is completely heated through, about 1 minute more. Enjoy immediately with a sprinkle of red pepper flakes or dash of hot sauce and additional soy sauce as desired.
-

Video

-

Notes

    -
  • TO STORE: Let your cooked homemade fried rice come to room temperature and place it in the refrigerator in an airtight storage container for up to 5 days.
  • -
  • TO REHEAT: Place your fried rice on a microwave-safe plate or in a bowl and microwave for 1 minute or until warmed through.
  • -
  • TO FREEZE: Once your homemade fried rice has cooled, place it in a freezer-safe container or ziptop bag, removing as much air as possible. Freeze for up to 3 months.
  • -
  • *INGREDIENT NOTE: Oyster sauce is readily available in the Asian or international food aisle of most major grocery stores. It has a unique flavor and texture, and if you substitute something else for it, your fried rice won’t taste the same. If you’d like to experiment with making the recipe without oyster sauce, you can simply omit it or swap in 1 tablespoon of sesame oil to add flavor.
  • -
-

Nutrition

Serving: 1(of 6), about 1 cupCalories: 229kcalCarbohydrates: 25gProtein: 9gFat: 11gSaturated Fat: 4gPolyunsaturated Fat: 2gMonounsaturated Fat: 4gTrans Fat: 0.2gCholesterol: 103mgPotassium: 283mgFiber: 4gSugar: 2gVitamin A: 1206IUVitamin C: 38mgCalcium: 53mgIron: 2mg
-

Join today and start saving your favorite recipes

Create an account to easily save your favorite recipes and access FREE meal plans.

Sign Me Up
- -
- -

Frequently Asked Questions

- - - -
Can You Make Fried Rice With Fresh Rice?

You can make fried rice with fresh rice, but let the rice chill completely in the refrigerator before starting the recipe. This is CRUCIAL for the recipe to turn out properly. For best results, stick to day-old rice (or rice that’s been in the freezer and then thawed).

What Makes Chinese Fried Rice Taste So Good?

Takeout fried rice is typically loaded with unhealthy fats and sodium and sugar-heavy sauces. While these DO taste divine, they’re not the healthiest option to eat on the regular. I think this healthy fried rice gives you the best of both worlds.

Can Fried Rice Be Eaten Cold?

Truth be told, I love this dish leftover just as much as I do when it’s fresh. The flavors marry, and it becomes extra irresistible. And, yes, I’ve been known to eat it cold right out of the container (sometimes at breakfast with cold Beef Lo Mein).

Does Mixing Egg Into Rice Cook It?

As long as you heat and stir the eggs over high heat for a few minutes, they will cook. While I prefer to cook the eggs before frying the rice, then add them in at the end so you get those tasty bits of egg, if you forget to cook the eggs first, you can pour beaten eggs into the rice at the end, then stir to cook them through.

- -
- -

More Takeout-inspired stir fries

Did you try this recipe?

I want to see!

Follow @wellplated on Instagram, snap a photo, and tag it #wellplated. I love to know what you are making!

You May Also Like

-
Free Email Series
Sign Up for FREE Weekly Meal Plans
Each includes a grocery list, budget, and 5 healthy dinners, helping you save time, save money, and live better! - -

Erin Clarke

Hi, I'm Erin Clarke, and I'm fearlessly dedicated to making healthy food that's affordable, easy-to-make, and best of all DELISH. I'm the author and recipe developer here at wellplated.com and of The Well Plated Cookbook. I adore both sweets and veggies, and I am on a mission to save you time and dishes. WELCOME!

-

Learn more about Erin

-
- -
-

Leave a Comment

Did you make this recipe?

Don't forget to leave a review!

Your email address will not be published. Required fields are marked *

- -
- Recipe Rating -




-
-
-

- -

- -

-

50 Comments

Leave a comment

  1. -
    - - -
    -

    The peppers do not belong in fried rice. The peppers are too strong and that is the only thing you taste. My rice was not fluffy as the vegetables had too much water I think. It all stuck together and was very glue like. I will not be making again.

    -
    - -
    -
      -
    1. -
      - - -
      -

      I’m sorry to hear you didn’t enjoy the recipe Elizabeth. The amounts and method has worked well for myself (and others) so I wished it would of been a hit for you too.

      -
      - -
      -
    2. -
    -
  2. -
  3. - -
      -
    1. - -
    2. -
    -
  4. -
  5. -
    - - -
    -

    I was looking forward to making this recipe until I saw oyster sauce. I am allergic to all shell fish. Is there a substitute or can I just leave it out?

    -
    - -
    -
      -
    1. -
      - - -
      -

      Hi Marilyn, if you’d like to experiment with making the recipe without oyster sauce, you can simply omit it or swap in 1 tablespoon of sesame oil to add flavor. Enjoy!

      -
      - -
      -
    2. -
    -
  6. -
  7. -
    - - -
    -

    I made this several times as directed in the recipe. It is THE best. I have sometimes added shrimp. We are 2 adults and always have enough for 2 meals.5 stars

    -
    - -
    -
      -
    1. - -
    2. -
    -
  8. -

Load More Comments

-
-
- -
- -
- -
- -
-
- - -
- -
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
- -
- -
-
-
-

I'd like to receive more tips & recipes from Well Plated By Erin.

-
-
-
-
-
- -
-
- -
- -
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
- -
- - - - - -
-
-
- -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Egg Fried Rice {One Pan + 15 Minutes} – WellPlated.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ the well plated cookbook

The Well Plated Cookbook is now available!

+
+

Egg Fried Rice

This post may contain affiliate links. Please read our disclosure policy.

+

Today, I’m sharing my top tips to make healthy Egg Fried Rice at home that tastes BETTER than what you can get at a restaurant. It’s true!

+ + + +
easy egg fried rice in a skillet
+ + + + +

Why You’ll Love This Fried Rice Recipe

+ + + +

Learning how to make homemade egg fried rice is an easy and valuable life skill.

+ + + +
    +
  • FAST. Mastering this simple technique not only yields tasty results but adds an easy, flavorful meal to your recipe arsenal that can be ready in 15 minutes flat.
  • + + + +
  • Fully Loaded. Unlike the disappointing, lackluster versions of fried rice you’ve experienced in the past, this recipe doesn’t skimp on the good stuff: veggies and eggs.
  • + + + +
  • Simple, Flexible Ingredients. The ingredients to make fried rice couldn’t be easier. This simple recipe requires any vegetables you have on hand (even frozen), egg (plus any protein you like), rice (leftover rice is best), and a homemade sauce that’s just two ingredients!
  • + + + +
  • Nutritious. Fried rice can be good for you! Because you can control the sugar and oil, you can use what you need and skip what you don’t.
  • + + + +
  • Authentic Flavor. With a few easy tips (use cold rice; a bit of butter), you can make restaurant-style fried rice from scratch, no sweat.
  • + + + +
  • Leftover Friendly. Once you learn how to make it, you’ll want to go ahead and double this recipe. It’s the trifecta of sweet, sticky, and savory, and it tastes even better reheated.
  • +
+ + + +

Ditch the takeout menu and grab your wok (or skillet). It’s time to learn how to make the best fried rice recipe!

+ + + +
a close of up Chinese egg fried rice with vegetables
+ + +

5 Star Review

Absolutely DELICIOUS. This is such a flexible dish too, you can literally mold it to whatever flavor profile you want.
+Erin’s recipes are seriously OUT OF THIS WORLD. I wish I could give this more than 5 stars.

+— Stephen —
+ + +

The Best Rice for Fried Rice

+ + + +

If you take one thing away from this post, let it be this: the best rice to use when making homemade fried rice is leftover, COLD rice.

+ + + +
    +
  • Cold rice works best for fried rice because it is drier, which keeps the fried rice from becoming soggy.
  • + + + +
  • It also helps the individual rice grains separate from
  • +
+ + + +

As far as which type of rice to use, that’s up to you! You can choose brown or white rice.

+ + + + + + +
+
a bowl of homemade healthy fried rice
+ + +

How to Make Egg Fried Rice from Scratch

+ + + +

The magic of this recipe’s tastiness and ease lies in its fusion of fresh ingredients with pantry and freezer staples.

+ + + +

The ingredients for fried rice are simple, but they come together to create something truly addictive.

+ + + +
+ + + +

The Ingredients

+ + + +
    +
  • Leftover COLD Rice. I cannot stress the COLD part enough, so I’m stating it here again. You must cool rice to make the best fried rice. Cold rice is the secret to great fried rice. You do cook rice before frying it, so go ahead and put the rice on the stove now. You’ll want it at the ready when it’s time to cook dinner!
  • + + + +
  • Vegetables. Unlike the takeout version, you’ll find a heap of colorful vegetables in every forkful of this fried rice recipe. For freshness and color, I used red bell pepper. For speed and ease, I added a 10-ounce bag of frozen peas and carrots. The carrots and peas tasted fantastic, and I spent exactly zero minutes chopping them.
  • +
+ + +

Market Swap

+ +

You can use any mix of fresh OR FROZEN vegetables that you prefer! Here are a few other tasty veggies that work well in homemade fried rice:

+ + + +
    +
  • Pea Pods
  • + + + +
  • Broccoli
  • + + + +
  • Slice Onions
  • + + + +
  • Eggplant
  • + + + +
  • Yellow Squash
  • + + + +
  • Zucchini
  • + + + +
  • Mushrooms
  • + + + +
  • Corn
  • + + + +
  • Green beans
  • +
+ +
+ + +
    +
  • Butter. Another of my best-ever fried rice secrets! Adding butter to fried rice is a pro tip that no restaurant will tell you but is oh-so-true.
  • + + + +
  • Oyster Sauce. Think of oyster sauce as an umami bomb of instant flavor. It’s thick, sticky, and its flavor is rich and complex. It coats every grain of rice with unmistakable flair. You can find oyster sauce in the Asian food aisle of any major grocery store.
  • + + + +
  • Soy Sauce. More umami. I recommend low-sodium soy sauce so that the rice doesn’t become too salty and you can better control its flavor.
  • +
+ + +

Dietary Note!

+ +

For a gluten-free fried rice recipe, swap the soy sauce for tamari or coconut aminos. I would also suggest checking the label of your oyster sauce since some brands may add gluten-containing additives.

+ +
+ + +
    +
  • Edamame. A quick and easy way to add protein to vegetable fried rice. Look for shelled edamame in the freezer section of the grocery store.
  • + + + +
  • Green Onions + Garlic. For freshness, bite, and zing.
  • + + + +
  • Eggs. Fried rice with egg is classic, plus it adds more protein.
  • +
+ + +

Substitution Tip

+ +

For fried rice without egg, simply omit it from the recipe. If you have an egg allergy and would like something with a similar texture, try adding pieces of Air Fryer Tofu.

+ +
+ + +

The Directions

+ + + +
    +
  1. Mix the oyster sauce and soy sauce. That good umami flavor.
  2. +
+ + + +
a pan with scrambled eggs for fried rice
+ + + +
    +
  1. Scramble the eggs in butter.
  2. +
+ + + +
chopped bell peppers in a wok
+ + + +
    +
  1. Sauté fresh veggies over medium-high heat in peanut oil or a similar high-temp cooking oil until crisp-tender.
  2. +
+ + + +
a wok with carrots, edamame, and bell peppers
+ + + +
    +
  1. Add the frozen vegetables and edamame. Stir constantly for 30 seconds, then add the garlic.
  2. +
+ + + +
a wok with rice and vegetables
+ + + +
    +
  1. Add the brown rice and pour in the fried rice sauce. Stir until the rice is heated through and coated with saucy goodness. Fold in the eggs and scallions, and serve. ENJOY!
  2. +
+ + +
+
a bowl with homemade fried rice with leftover rice and vegetables
+ + +

Recipe Variations

+ + + +

This plain fried rice tastes anything but plain! That said, if you want to change it up, here are some ideas:

+ + + +
    +
  • Chicken Fried Rice. You can use chicken breasts or thighs.
  • + + + +
  • Pork Fried Rice. Pork is another lean protein option you can try.
  • + + + +
  • Shrimp Fried Rice. Quick-cooking shrimp add virtually zero time to this recipe.
  • + + + +
  • Pineapple Fried Rice. When you add your chopped red bell pepper to the pan, also add about 2 cups of chopped fresh or drained canned pineapple. YUM!
  • + + + +
  • Low Carb Fried Rice. You can also swap out the brown rice entirely! Try this Cauliflower Fried Rice.
  • + + + +
  • Spicy Fried Rice. Add a big pinch of red pepper flakes or top with sriracha.
  • +
+ + + +

Recipe Tips and Tricks

+ + + +
    +
  • Don’t Overdo the Soy Sauce. If you’re anything like I was as a kid, you loaded on the soy sauce onto your Stir Fry Noodles until it was swimming in a pool. While it may be tempting to keep adding more soy sauce while cooking, stick to the 1 tablespoon (I promise it will have plenty of flavor). You can always add a drizzle on your portion later.
  • + + + +
  • Use a Large Pan or Wok. Make sure your pan is big enough to cook all the ingredients evenly and stir easily without spills. Nothing worse than losing some of this precious dish off the side of the pan!
  • + + + +
  • Keep Your Pan HOT. A hot pan is critical for achieving that crispy, toasty deliciousness that comes from perfect fried rice. If your pan isn’t hot enough, you may end up steaming everything instead of frying it.
  • + + + +
  • Do Not Stir the Eggs until They’ve Started to Set. Use a rubber spatula to break the eggs into little, bite-sized pieces. Take care not to overcook!
  • + + + +
  • Chop the Veggies Small. Whichever vegetables you choose, to make this recipe move quickly and ensure the vegetables cook evenly, chop the vegetables small. (Also true for Cabbage Stir Fry.)
  • + + + +
  • Load on the Veggies. Unlike the takeout version, this homemade fried rice can be hearty enough to stand on its own without a separate main dish. Toss in whatever veggies you and your family love, and this dish will become colorful, flavorful, and filling!
  • + + + +
  • USE COLD RICE. If it feels like I’m obsessing over this point, it’s because I am. This is how you can make fried rice better. (Save the freshly-cooked rice for Broccoli Rice Casserole.)
  • +
+ + +
+
a bowl with egg and vegetable for simple homemade fried rice
+ + +

Storage Tips

+ + + +
    +
  • To Store. Let your cooked homemade fried rice cool to room temperature, then place it in the fridge in an airtight storage container for up to 5 days.
  • + + + +
  • To Reheat. Gently rewarm leftovers in a large skillet over medium-low heat until hot. You can also place leftovers on a microwave-safe plate or in a bowl and microwave for 1 minute or until warmed through.
  • + + + +
  • To Freeze. Once your homemade fried rice has cooled, place it in an airtight, freezer-safe storage container or zip-top bag, removing as much air as possible. Freeze for up to 3 months. Let thaw overnight in the refrigerator, then reheat as directed.
  • +
+ + +
+
Chinese fried rice restaurant style in a bowl
+ + +

What to Serve with Egg Fried Rice

+ + + +

Thanks to the heap of vegetables, edamame, egg, and whole grains, this recipe is substantial and well-rounded enough to be relatively good for you as a main dish too.

+ + + +

That said, if you’d like to serve it as a side or part of a larger meal, here are some ideas:

+ + + + + + + + + + + +
    +
  • Wok. If you love making stir fry recipes, adding a wok to your kitchen cookware collection is well worth the investment.
  • + + + +
  • Chopsticks. Adding a pair of fun and fancy chopsticks takes takeout-style meals at home to the next level (I also love these are dishwasher safe).
  • + + + +
  • Glass Measuring Cup. For whisking together that yummy, simple fried rice sauce.
  • +
+ + + +

I often lovingly refer to this sort of Asian cuisine-inspired recipe as “takeout, fake out” but the nickname doesn’t feel appropriate this time.

+ + + +

Honestly, this egg fried rice is so delicious, standard takeout fried rice or hibachi fried rice will never do it for you again!

+ + +
+ +
+

Egg Fried Rice

+
4.98 from 35 votes
+ +
How to make easy egg fried rice from scratch that's better than takeout! Simple, healthy ingredients and ready in 15 minutes!
+
+
+
Prep: 10 minutes
+
Cook: 15 minutes
+
Total: 25 minutes
+
+
+
Servings: 6 servings
+
+ +
+
+ +

Ingredients
  

  • 1/4 cup oyster sauce*
  • 1 tablespoon soy sauce (I use low-sodium) plus additional to taste
  • 2 tablespoons unsalted butter divided, or butter with canola oil spread
  • 3 large eggs lightly beaten
  • 1 tablespoon canola oil
  • 1 large red, yellow, or orange bell pepper cut into 1/4-inch dice (about 1 1/4 cups)
  • 1 bag frozen peas and carrots thawed (12 ounces)
  • 1 cup frozen shelled edamame thawed (optional, but great for extra protein)
  • 2 cloves garlic minced
  • 2 1/2 cups COLD cooked brown rice break up large clumps with your fingers
  • 1/2 cup chopped green onions about 3 medium
  • Red pepper flakes Sriracha, or hot sauce of choice (optional)
+
+
+

Instructions
 

  • In a small bowl, stir together the oyster sauce and soy sauce. Set aside. Grab a small bowl and a large, flexible rubber spatula, and keep both handy.
  • Heat a 12-inch nonstick skillet over medium heat until hot, about 2 minutes. Add 1/2 tablespoon butter and swirl to coat the bottom of the pan. Add the eggs, and cook without stirring until they barely start to set, about 20 seconds. With your spatula, scramble and break the eggs into little, bite-sized pieces. Continue to cook, stirring constantly, until eggs are just cooked through but not yet browned, about 1 additional minute. Transfer eggs to the small bowl and set aside.
  • Return the skillet to the heat, and increase the heat to high. Let the skillet warm until it is nice and hot, about 1 minute. Add the canola oil, and swirl to coat. Add the diced bell pepper, and cook until it is crisp-tender, about 4 minutes.
  • Add the remaining 1 1/2 tablespoons butter, peas and carrots, and edamame. Cook, stirring constantly, for 30 seconds. Stir in the garlic and cook until fragrant, about 30 seconds (do not let the garlic burn!).
  • Add the brown rice and the oyster sauce mixture. Continue cooking, stirring constantly and breaking up any remaining rice clumps, until the mixture is heated through, about 3 minutes.
  • Add reserved eggs and green onions. Cook and stir until the mixture is completely heated through, about 1 minute more. Enjoy immediately with a sprinkle of red pepper flakes or dash of hot sauce and additional soy sauce as desired.
+

Video

+

Notes

    +
  • TO STORE: Let your cooked homemade fried rice come to room temperature and place it in the refrigerator in an airtight storage container for up to 5 days.
  • +
  • TO REHEAT: Place your fried rice on a microwave-safe plate or in a bowl and microwave for 1 minute or until warmed through.
  • +
  • TO FREEZE: Once your homemade fried rice has cooled, place it in a freezer-safe container or ziptop bag, removing as much air as possible. Freeze for up to 3 months.
  • +
  • *INGREDIENT NOTE: Oyster sauce is readily available in the Asian or international food aisle of most major grocery stores. It has a unique flavor and texture, and if you substitute something else for it, your fried rice won’t taste the same. If you’d like to experiment with making the recipe without oyster sauce, you can simply omit it or swap in 1 tablespoon of sesame oil to add flavor.
  • +
+

Nutrition

Serving: 1(of 6), about 1 cupCalories: 229kcalCarbohydrates: 25gProtein: 9gFat: 11gSaturated Fat: 4gPolyunsaturated Fat: 2gMonounsaturated Fat: 4gTrans Fat: 0.2gCholesterol: 103mgPotassium: 283mgFiber: 4gSugar: 2gVitamin A: 1206IUVitamin C: 38mgCalcium: 53mgIron: 2mg
+

Join today and start saving your favorite recipes

Create an account to easily save your favorite recipes and access FREE meal plans.

Sign Me Up
+ +
+ +

Frequently Asked Questions

+ + + +
Can You Make Fried Rice With Fresh Rice?

You can make fried rice with fresh rice, but let the rice chill completely in the refrigerator before starting the recipe. This is CRUCIAL for the recipe to turn out properly. For best results, stick to day-old rice (or rice that’s been in the freezer and then thawed).

What Makes Chinese Fried Rice Taste So Good?

Takeout fried rice is typically loaded with unhealthy fats and sodium and sugar-heavy sauces. While these DO taste divine, they’re not the healthiest option to eat on the regular. I think this healthy fried rice gives you the best of both worlds.

Can Fried Rice Be Eaten Cold?

Truth be told, I love this dish leftover just as much as I do when it’s fresh. The flavors marry, and it becomes extra irresistible. And, yes, I’ve been known to eat it cold right out of the container (sometimes at breakfast with cold Beef Lo Mein).

Does Mixing Egg Into Rice Cook It?

As long as you heat and stir the eggs over high heat for a few minutes, they will cook. While I prefer to cook the eggs before frying the rice, then add them in at the end so you get those tasty bits of egg, if you forget to cook the eggs first, you can pour beaten eggs into the rice at the end, then stir to cook them through.

+ +
+ +

More Takeout-inspired stir fries

Did you try this recipe?

I want to see!

Follow @wellplated on Instagram, snap a photo, and tag it #wellplated. I love to know what you are making!

You May Also Like

+
Free Email Series
Sign Up for FREE Weekly Meal Plans
Each includes a grocery list, budget, and 5 healthy dinners, helping you save time, save money, and live better! + +

Erin Clarke

Hi, I'm Erin Clarke, and I'm fearlessly dedicated to making healthy food that's affordable, easy-to-make, and best of all DELISH. I'm the author and recipe developer here at wellplated.com and of The Well Plated Cookbook. I adore both sweets and veggies, and I am on a mission to save you time and dishes. WELCOME!

+

Learn more about Erin

+
+ +
+

Leave a Comment

Did you make this recipe?

Don't forget to leave a review!

Your email address will not be published. Required fields are marked *

+ +
+ Recipe Rating +




+
+
+

+ +

+ +

+

50 Comments

Leave a comment

  1. +
    + + +
    +

    The peppers do not belong in fried rice. The peppers are too strong and that is the only thing you taste. My rice was not fluffy as the vegetables had too much water I think. It all stuck together and was very glue like. I will not be making again.

    +
    + +
    +
      +
    1. +
      + + +
      +

      I’m sorry to hear you didn’t enjoy the recipe Elizabeth. The amounts and method has worked well for myself (and others) so I wished it would of been a hit for you too.

      +
      + +
      +
    2. +
    +
  2. +
  3. + +
      +
    1. + +
    2. +
    +
  4. +
  5. +
    + + +
    +

    I was looking forward to making this recipe until I saw oyster sauce. I am allergic to all shell fish. Is there a substitute or can I just leave it out?

    +
    + +
    +
      +
    1. +
      + + +
      +

      Hi Marilyn, if you’d like to experiment with making the recipe without oyster sauce, you can simply omit it or swap in 1 tablespoon of sesame oil to add flavor. Enjoy!

      +
      + +
      +
    2. +
    +
  6. +
  7. +
    + + +
    +

    I made this several times as directed in the recipe. It is THE best. I have sometimes added shrimp. We are 2 adults and always have enough for 2 meals.5 stars

    +
    + +
    +
      +
    1. + +
    2. +
    +
  8. +

Load More Comments

+
+
+ +
+ +
+ +
+ +
+
+ + +
+ +
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+ +
+ +
+
+
+

I'd like to receive more tips & recipes from Well Plated By Erin.

+
+
+
+
+
+ +
+
+ +
+ +
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+ +
+ + + + + +
+
+
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_data/wellplated.com/wellplated_2.json b/tests/test_data/wellplated.com/wellplated_2.json new file mode 100644 index 000000000..dd29628b6 --- /dev/null +++ b/tests/test_data/wellplated.com/wellplated_2.json @@ -0,0 +1,99 @@ +{ + "author": "Erin Clarke", + "canonical_url": "https://www.wellplated.com/crockpot-potato-soup-recipe/", + "site_name": "Well Plated by Erin", + "host": "wellplated.com", + "language": "en-US", + "title": "Crockpot Potato Soup", + "ingredients": [ + "2 tablespoons unsalted butter*", + "1 small yellow onion (diced)", + "3 large carrots (scrubbed and diced)", + "2 pounds Yukon gold potatoes (peeled and cut into 1/2-inch chunks)", + "1 teaspoon Italian seasoning", + "1 teaspoon kosher salt (plus additional to taste)", + "1/4 teaspoon cayenne pepper", + "3–4 cups reduced-sodium chicken broth ((or vegetable broth for a vegetarian soup))", + "1 can 2% evaporated milk ((12-ounces) )", + "3 tablespoons cornstarch", + "1 cup shredded sharp cheddar cheese (plus additional for serving)", + "1 cup nonfat plain Greek yogurt (plus additional for serving)", + "Cooked crumbled bacon ((optional))", + "Chopped fresh chives ((optional))" + ], + "ingredient_groups": [ + { + "ingredients": [ + "2 tablespoons unsalted butter*", + "1 small yellow onion (diced)", + "3 large carrots (scrubbed and diced)", + "2 pounds Yukon gold potatoes (peeled and cut into 1/2-inch chunks)", + "1 teaspoon Italian seasoning", + "1 teaspoon kosher salt (plus additional to taste)", + "1/4 teaspoon cayenne pepper", + "3–4 cups reduced-sodium chicken broth ((or vegetable broth for a vegetarian soup))", + "1 can 2% evaporated milk ((12-ounces) )", + "3 tablespoons cornstarch", + "1 cup shredded sharp cheddar cheese (plus additional for serving)", + "1 cup nonfat plain Greek yogurt (plus additional for serving)" + ], + "purpose": null + }, + { + "ingredients": [ + "Cooked crumbled bacon ((optional))", + "Chopped fresh chives ((optional))" + ], + "purpose": "For Topping:" + } + ], + "instructions_list": [ + "Sauté", + "Lightly coat a 6-quart or larger slow cooker with nonstick spray. In a large skillet, melt the butter over medium heat. Add the onion and sauté until softened, about 6 to 8 minutes, stirring frequently and adjusting the heat so that the onion does not crisp or turn dark brown. Add to the slow cooker.", + "Cook", + "To the slow cooker, add the carrots, potatoes, Italian seasoning, salt, cayenne, and 3 cups chicken broth. Stir to combine. Cover and cook on low for 6 to 8 hours or high for 3 to 4 hours, until the potatoes and carrots are completely tender.", + "Whisk", + "While the vegetables cook, in a medium bowl, whisk together the evaporated milk and cornstarch until no lumps remain. During the last 30 minutes of cooking, add the cornstarch/milk mixture. Continue cooking for 30 additional minutes.", + "Stir", + "Just before serving, stir in the shredded cheddar and Greek yogurt. With a potato masher or large spoon, mash half of the potatoes directly in the slow cooker. The soup will continue to thicken as it cools. If you would like the soup to be thinner, add the remaining 1 cup chicken broth until you reach your desired consistency (warm up the broth first). Stir to combine, then season with salt and pepper to taste. Serve hot, topped with bacon, chives, and additional cheese/Greek yogurt as desired." + ], + "category": "Main Course", + "yields": "4 servings", + "description": "The easiest crockpot potato soup recipe that's healthy too! Made with evaporated milk, this crockpot potato soup is gluten free & vegetarian.", + "total_time": 480, + "cook_time": 420, + "prep_time": 15, + "cuisine": "American", + "ratings": 4.9, + "ratings_count": 161, + "nutrients": { + "servingSize": "1 of 4 (about 2 1/4 cups; without bacon or chives)", + "calories": "506 kcal", + "fatContent": "18 g", + "saturatedFatContent": "9 g", + "unsaturatedFatContent": "5 g", + "transFatContent": "0.2 g", + "carbohydrateContent": "64 g", + "sugarContent": "16 g", + "proteinContent": "24 g", + "fiberContent": "7 g", + "cholesterolContent": "61 mg" + }, + "image": "https://www.wellplated.com/wp-content/uploads/2019/01/Slow-Cooker-Loaded-Potato-Soup.jpg", + "keywords": [ + "crockpot loaded potato soup without heavy cream", + "crockpot potato soup no bacon", + "crockpot potato soup no milk", + "Crockpot Potato Soup quick", + "crockpot potato soup recipe", + "crockpot potato soup vegetarian", + "Crockpot Potato Soup with evaporated milk", + "crockpot potato soup with real potatoes", + "crockpot potato soup with veggies", + "crockpot potato soup without sour cream", + "easiest crockpot potato soup", + "Easy Crockpot Potato Soup", + "healthy crockpot recipe", + "healthy slow cooker potato soup" + ] +} diff --git a/tests/test_data/wellplated.com/wellplated_2.testhtml b/tests/test_data/wellplated.com/wellplated_2.testhtml new file mode 100644 index 000000000..a361b6ceb --- /dev/null +++ b/tests/test_data/wellplated.com/wellplated_2.testhtml @@ -0,0 +1,2528 @@ + + + + + Crockpot Potato Soup – WellPlated.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ well plated every day

My new cookbook Well Plated Every Day is now available!

+
+

Crockpot Potato Soup

4.90 From 161 reviews . Help us out! Review HERE.Help out & review HERE

This post may contain affiliate links.

+

Some recipes just hit the spot every single time. For me, this Crockpot Potato Soup is forever a winner! It boasts the all-American taste that you crave in a typical potato soup, but this lightened-up version is so much better for you.

+ + + +
bacon, cheese, and greek yogurt on top of healthy Crockpot Potato Soup with evaporated milk in a bowl
+ + + + +

When the weather gets chilly, I turn to my plethora of healthy soup and stew recipes for inspiration.

+ + + +

While I’ll never turn down a heaping bowl of Potato Leek Soup, 15 Bean Soup, Crock Pot Hamburger Soup, or Shrimp Corn Chowder, this healthy slow cooker potato soup is a tried-and-true classic.

+ + + +

This recipe only takes 15 minutes to prep (!!), and then it lets the slow cooker do the work.

+ + + +

This crockpot loaded potato soup gets its creamy texture from Yukon gold potatoes and cheesy flavor from delicious sharp cheddar cheese.

+ + + +

It’s deeply rewarding to come home to this soup at the end of a long day.

+ + +
+
a bowl of the easiest crockpot potato soup topped with cheese and bacon
+ +

5 Star Review

“Absolutely delicious!! The flavor is so rich it’s practically decadent! My new favorite potato soup!”

+— Casey —
+ + +

How to Make Crockpot Potato Soup from Scratch

+ + + +

While this recipe tastes decadent (like a crockpot potato soup with cream of chicken soup), in keeping with my approach of lightening up comfort food recipes without skimping on flavor, I used a few sneaky swaps.

+ + + +

This healthy potato soup is primarily veggie based, and I added a few helpful shortcuts that make it weeknight meal friendly too.

+ + +

Dietary Note

+ +

As it is written, this crockpot potato soup recipe is gluten free. It is also vegetarian if you omit the crumbled bacon from the final topping and opt for vegetable broth rather than chicken broth.

+ +
+ + +
+ + + +

The Ingredients

+ + + +
    +
  • Yukon Gold Potatoes. My favorite all-around potato. You’ll sometimes see these labeled as “yellow potatoes” or “golden potatoes.”
  • +
+ + +

Ingredient Note

+ +

While you can use almost any variety of potato for potato soup—including russet potatoes, red potatoes, or Yukon gold—Yukon gold potatoes far and away have my vote for producing the creamiest potato soup.

+ + + +
    +
  • Yukon golds are naturally buttery in flavor, so they make the soup taste rich.
  • + + + +
  • They’re super creamy when cooked, so they give the soup a fantastic texture.
  • +
+ +
+ + +
    +
  • Nonfat Plain Greek Yogurt. Thick, protein-packed, and creamy, Greek yogurt is an easy way to give this soup a velvety texture and make it better for you. It’s particularly delicious here (and in Corn Chicken Chowder) since it has a similar tang to sour cream.
  • + + + +
  • Sharp Cheddar Cheese. How you add flavor to potato soup (and Slow Cooker Broccoli Cheese Soup)! Using fully flavored cheese means you can add less to the recipe and still have the same oomph. Skip the mild cheddar here and go for the sharpest cheddar you can find.
  • +
+ + +

Tip!

+ +

I recommend grating the cheese directly off the block for the maximum melt factor. Pre-shredded cheeses are usually coated with a cellulose-based powder to keep the shreds from sticking together, and as a result, they don’t melt as smoothly.

+ +
+ + +
    +
  • Onions. Sautéing the onions before adding them to the crockpot brings out their flavor and sweetness. It’s an extra (easy) step that I feel takes this soup to another level of deliciousness and is 100% worth it.
  • + + + +
  • Carrots. My added vegetable sneak (also used in this Potato Cheese Soup) gives this simple crockpot potato soup a boost of added vitamins, minerals, and fiber.
  • + + + +
  • Evaporated Milk + Cornstarch. Forget crockpot potato soup with heavy cream. Instead, stir a slurry of cornstarch and evaporated milk directly into the slow cooker. It is the best way to thicken potato soup (or Mushroom Soup too)! Add it about 30 minutes before the soup is done cooking, and it will thicken into the creamy potato soup of your dreams.
  • + + + +
  • Chicken Broth. I like to reach for low-sodium chicken broth for soup recipes, but you could use regular broth too.
  • +
+ + +

Topping Ideas

+ +

Top your creamy baked potato soup with any of your favorite soup toppings. Crumbled bacon, diced chives (or green onions), or additional cheese and Greek yogurt are some of my favorites. A little dash of salt and pepper never hurt anyone, either.

+ +
+ + +

The Directions

+ + + +
sauted onions in a skillet is the first step to easy crockpot potato soup
+ + + +
    +
  1. Sauté the onion and add it to the slow cooker.
  2. +
+ + + +
cubed potatoes, herbs, carrots, and chicken broth in a slow cooker
+ + + +
    +
  1. Add the carrots, potatoes, spices, and chicken broth. Cook potato soup on LOW heat for 6 to 8 hours or HIGH for 3 to 4 hours.
  2. +
+ + +
+
A bowl of crockpot potato soup with bacon and crackers
+ + +
    +
  1. Add the milk and cornstarch mixture.
  2. +
+ + + +
stirring greek yogurt and cheese into easy crockpot potato soup
+ + + +
    +
  1. Stir in the cheese and yogurt.
  2. + + + +
  3. Mash about half of the potatoes directly in the slow cooker. Serve the soup with a few (or maybe a lot) of tasty toppings (more cheese, anyone?). ENJOY!
  4. +
+ + +

TIP!

+ +

If you prefer a perfectly smooth potato soup without chucks, you can instead puree the soup with an immersion blender. I suggest doing this before adding the cheese and yogurt in step 4.

+ +
+ + +

Storage Tips

+ + + +
    +
  • To Store. Keep your leftover soup in an airtight container in the refrigerator for up to 5 days.
  • + + + +
  • To Reheat. Warm in the microwave or stovetop with a splash of milk or chicken broth as needed until heated through.
  • + + + +
  • To Freeze. To ensure this soup freezes well (potatoes can become mealy when frozen), I recommend making a few adjustments before sticking your leftovers in the freezer. Instead of mashing about half the potatoes in the slow cooker, you should mash almost all of them, which will help to deter the potatoes from becoming mealy (you may need to add more broth to thin the soup). Let the soup cool completely. Then, place leftover soup in a freezer-safe container in the freezer for up to 3 months. Thaw overnight in the refrigerator before warming.
  • +
+ + +
+ +

Leftover Tip

+ + + +

If you want to enjoy your leftovers a little at a time, freeze portion-sized amounts of soup in multiple small containers.

+ +
+ + +

What to Serve with Crockpot Potato Soup

+ + + +

While this soup is delicious on its own, here are some ideas for quick crockpot potato soup side dishes:

+ + + + + + +

More Serving Ideas for Crockpot Potato Soup

+ +
+
a bowl of cheesy crockpot potato soup from scratch with a spoon
+ + + + + + +
    +
  • Programmable Slow Cooker. I love that this one switches to “keep warm” once the cooking time ends, so food runs less of a risk of overcooking.
  • + + + +
  • Vegetable Peeler. I love this Y-shaped peeler, or a regular vegetable peeler will work great.
  • + + + +
  • Ladle. Perfect for transferring the soup to serving bowls and storage containers.
  • +
+ + +
+ +

The Best Slow Cooker

+ + + +

One of my favorite kitchen appliances year-round! It’s easy to use and helps build delicious flavor.

+ + + + + +
+ + +
a bowl with loaded crockpot potato soup without heavy cream
+ + + +

This tasty loaded baked potato soup also makes fantastic leftovers.

+ + + +

We enjoyed ours two nights in a row for dinner, and both reheated leftovers for lunch the next day. It tasted better and better as the week went on.

+ + + +

True soup success!

+ + +
+ +

Frequently Asked Questions

+ + + +
Can I Make This Soup in the Instant Pot

I have not made this particular recipe in a pressure cooker before, so it would be an experiment. If you’re looking for an Instant Pot version, try this Instant Pot Potato Soup.

Can I Make Crockpot Potato Soup Without Evaporated Milk?

Readers have reported success swapping canned coconut milk and regular dairy milk for the evaporated milk in this recipe. Keep in mind these both may result in a thinner soup, however. Therefore, adjust the amount as needed to achieve a thickness you enjoy.

Do You Have to Peel Potatoes for Potato Soup?

For the smoothest texture, peel potatoes for potato soup. If you don’t mind the appearance or taste of the potato peels in the soup, you could certainly opt to leave the peels on.

Can I Make Potato Soup with Frozen Hash Browns Instead of Fresh Potatoes?

I have not tested this crock pot potato soup with frozen hash browns, so it would be an experiment. I’d recommend fully blending the soup and note that the hashbrowns will break down considerably. If you decide to try it, I’d love to hear how it goes.

Can I Make Potato Soup Vegan?

While this particular recipe is not vegan, try this Vegan Potato Soup!

+ +
+ + + +
+ +
+

Crockpot Potato Soup

+
4.90 From 161 reviews . Help us out! Review HERE.Help out & review HERE
+
+
+
Prep: 15 minutes
+
Cook: 7 hours
+
Total: 8 hours
+
+
+
Servings: 4 servings
+
+ +
+
+ + +
The easiest crockpot potato soup recipe that's healthy too! Made with evaporated milk, this crockpot potato soup is gluten free & vegetarian.
+ + + +

Ingredients
  

  • 2 tablespoons unsalted butter*
  • 1 small yellow onion diced
  • 3 large carrots scrubbed and diced
  • 2 pounds Yukon gold potatoes peeled and cut into 1/2-inch chunks
  • 1 teaspoon Italian seasoning
  • 1 teaspoon kosher salt plus additional to taste
  • ¼ teaspoon cayenne pepper
  • 3–4 cups reduced-sodium chicken broth (or vegetable broth for a vegetarian soup)
  • 1 can 2% evaporated milk (12-ounces)
  • 3 tablespoons cornstarch
  • 1 cup shredded sharp cheddar cheese plus additional for serving
  • 1 cup nonfat plain Greek yogurt plus additional for serving

For Topping:

  • Cooked crumbled bacon (optional)
  • Chopped fresh chives (optional)
+
+
+

Instructions
 
+
+ +

  • Lightly coat a 6-quart or larger slow cooker with nonstick spray. In a large skillet, melt the butter over medium heat. Add the onion and sauté until softened, about 6 to 8 minutes, stirring frequently and adjusting the heat so that the onion does not crisp or turn dark brown. Add to the slow cooker.
  • To the slow cooker, add the carrots, potatoes, Italian seasoning, salt, cayenne, and 3 cups chicken broth. Stir to combine. Cover and cook on low for 6 to 8 hours or high for 3 to 4 hours, until the potatoes and carrots are completely tender.
  • While the vegetables cook, in a medium bowl, whisk together the evaporated milk and cornstarch until no lumps remain. During the last 30 minutes of cooking, add the cornstarch/milk mixture. Continue cooking for 30 additional minutes.
  • Just before serving, stir in the shredded cheddar and Greek yogurt. With a potato masher or large spoon, mash half of the potatoes directly in the slow cooker. The soup will continue to thicken as it cools. If you would like the soup to be thinner, add the remaining 1 cup chicken broth until you reach your desired consistency (warm up the broth first). Stir to combine, then season with salt and pepper to taste. Serve hot, topped with bacon, chives, and additional cheese/Greek yogurt as desired.
+

Video

+

Notes

    +
  • *SUBSTITUTION TIP: If you plan to serve the soup with bacon, I suggest chopping it into bite-size pieces, then sautéing it in a large skillet over medium-low heat until crisp, about 10 minutes. Remove with a slotted spoon. Drain out all but 2 tablespoons of the bacon drippings, then use it to sauté in the onions in place of the unsalted butter.
  • +
  • TO STORE: Place leftover soup in an airtight storage container in the refrigerator for up to 5 days.
  • +
  • TO REHEAT: Reheat in the microwave or on the stove with a splash of milk or chicken broth as needed until heated through.
  • +
  • TO FREEZE: Instead of mashing about half the potatoes in the slow cooker during Step 4, you should mash almost all of them (you may need to add more broth to thin the soup). Let the soup cool completely. Then, place leftover soup in a freezer-safe container in the freezer for up to 3 months. Thaw overnight in the refrigerator before warming.
  • +
+

Nutrition

Serving: 1of 4 (about 2 1/4 cups; without bacon or chives)Calories: 506kcalCarbohydrates: 64gProtein: 24gFat: 18gSaturated Fat: 9gPolyunsaturated Fat: 1gMonounsaturated Fat: 4gTrans Fat: 0.2gCholesterol: 61mgPotassium: 1316mgFiber: 7gSugar: 16gVitamin A: 9553IUVitamin C: 49mgCalcium: 346mgIron: 3mg
+

Join today and start saving your favorite recipes

Create an account to easily save your favorite recipes and access FREE meal plans.

Sign Me Up
+ +

Related Recipes

Here are more easy crockpot soup recipes to get you through the chilly days of fall and winter:

+

Did you try this recipe?

I want to see!

Follow @wellplated on Instagram, snap a photo, and tag it #wellplated. I love to know what you are making!

You May Also Like

+
Free Email Series
Sign Up for FREE Weekly Meal Plans
Each includes a grocery list, budget, and 5 healthy dinners, helping you save time, save money, and live better! + +
Please enable JavaScript in your browser to complete this form.

Erin Clarke

Hi, I'm Erin Clarke, and I'm fearlessly dedicated to making healthy food that's affordable, easy-to-make, and best of all DELISH. I'm the author and recipe developer here at wellplated.com and of The Well Plated Cookbook. I adore both sweets and veggies, and I am on a mission to save you time and dishes. WELCOME!

+

Learn more about Erin

+
+ +
+

Leave a Comment

Did you make this recipe?

Don't forget to leave a review!

Your email address will not be published. Required fields are marked *

+ +
+ Recipe Rating +




+
+
+

+ +

+ + + + The maximum upload file size: 4 MB. + + You can upload: image, video. + + Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. + + + Drop files here + +

+

+ +

+ + +
  1. +
    + + +
    +

    My second time making this soup. It is so delicious. The Greek yogurt gives the soup some twang which really works well.5 stars

    +
    +
    + + + + +
    + +
    +
      +
    1. + +
    2. +
    3. + +
        +
      1. + +
      2. +
      +
    4. +
    +
  2. +
  3. + +
      +
    1. +
      + + +
      +

      Hi Marita, I’ve only tested it in my 6qt. It might, just not sure. It definitely could not be doubled unless you have a bigger crockpot. Hope this helps!

      +
      +
      + + + + +
      + +
      +
    2. +
    +
  4. +
  5. +
    + + +
    +

    This soup is so good! Super flavorful, and so easy to prepare. I will definitely be making this recipe again! If you have been turned off by bland potato soups in the past, give this one a try; it really is great!5 stars

    +
    +
    + + + + +
    + +
    +
      +
    1. + +
    2. +
    +
  6. +
  7. +
    + + +
    +

    Can I use a liner in my crockpot when making this soup? I’m very anxious to try this soup! Sounds yummy!
    +Thank you!

    +
    +
    + + + + +
    + +
    +
      +
    1. + +
    2. +
    +
  8. +
  9. +
    + + +
    +

    I made this for a group and every single person raved about how good it was! I put all the toppings out to let each person add to their own taste. I cannot post a picture because there wasn’t a drop left! Truly the best potato soup I’ve ever had!5 stars

    +
    +
    + + + + +
    + +
    +
      +
    1. + +
    2. +
    +
  10. +
  11. +
    + + +
    +

    Hello,

    +

    Where can I find the nutritional information for this soup? Like the carbs, proteins, sugar and fat per serving?

    +

    Thank you,

    +

    Sherie Guillory

    +
    +
    + + + + +
    + +
    +
      +
    1. +
      + + +
      +

      Hi Sherie, all nutritional information is located at the end of every recipe card. If you click the “jump to recipe” button at the top of the screen, it can help you navigate there quickly.

      +
      +
      + + + + +
      + +
      +
    2. +
    +
  12. +
  13. +
    + + +
    +

    I made this for dinner and my family loved it! Such a delicious soup!!! I followed the instructions precisely for 4 servings. This made enough soup for leftovers, which is great! One thing I noticed though, if you change the serving number to 1 or 2, the site actually increases the broth to 8 or 17 cups! Obviously that’s incorrect. Just wanted to let you know. :)5 stars

    +

    +
    +
    + + + + +
    + +
    +
      +
    1. +
      + + +
      +

      So glad to hear you enjoyed the recipe, Jen! Thank you, it should definitely only be 6-8 cups. Looks so tasty!

      +
      +
      + + + + +
      + +
      +
    2. +
    +
  14. +
  15. +
    + + +
    +

    ThisPotatoe soup is absolutley delicous. Going in our regular rotation. So delightfully delicous! My husband loves it. Easy to make ! Thanks for sharing this recipe.5 stars

    +
    +
    + + + + +
    + +
    +
      +
    1. + +
    2. +
    +
  16. +
  17. +
    + + +
    +

    Made this soup for the first time and oh my god! Was it ever so delicious. I added some shredded chicken for protein and homemade bread on the side.

    +

    One to make this winter over and over!

    +
    +
    + + + + +
    + +
    +
      +
    1. + +
    2. +
    +
  18. +
  19. +
    + + +
    +

    I was kind of disappointed in the texture of this soup. To me it came out a lot runnier than I wanted or expected it to. I weighted my potatoes because I had a 5lb bag of yellow potatoes. I put 2.14 pounds cut up in my crockpot with the 3 diced carrots, 1 small diced onion, 3 cups of low sodium chicken broth, and the can on evaporated milk with cornstarch mixture. But the soup ended up being so watery that I wish I didn’t add so much chicken broth or that I added more potatoes. I tried to wait even longer to see if it would thicken up but it never did. The other pictures look like the texture I was expecting so not sure what happened.

    +

    +
    +
    + + + + +
    + +
    +
      +
    1. +
      + + +
      +

      I”m sorry to hear you had trouble with the recipe, Natalie. Yellow potatoes are considered a waxy potato that is low in starch and high in moisture, while a Yukon gold potatoes are medium starchy and moisture levels, so I feel like this might be where the first issue comes into place. It also looks like, it should have cooked longer. Maybe my crockpot runs hotter than yours. How long did you cook it for? Also the soup thickens up as it cools. Is the photo of hot soup or cooled down soup? Thank you!

      +
      +
      + + + + +
      + +
      +
    2. +
    +
  20. +
  21. +
    + + +
    +

    So glad I decided to make this yesterday since it was rainy and somewhat chilly. I couldn’t have been more pleased with the outcome! This is most definitely a keeper. I opted to use sour cream in place of yogurt and whole milk in place of evaporated. And, since I had no cheddar, I used a combination of Fontina and smoked Gouda. Oddly enough, it worked really well! And, don’t leave the cayenne out! Thank you so much for this recipe. I’m making your Red Lentil Curry with Sweet Potatoes today!5 stars

    +
    +
    + + + + +
    + +
    +
      +
    1. + +
    2. +
    +
  22. +

Load More Comments

+
+

No comments (yet). Help our readers and give a thumbs up to any comment you found helpful!

    +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    + + + +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    join me on my cookbook tour +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    + +
    + +
    +
    +
    +
    quick back to school dinners +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    + + + + + +
    +
    + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 56b93d2f6a9d00b4a2621b2ad9898217e75bc327 Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:07:39 -0700 Subject: [PATCH 11/19] Ingredient grouping support for womensweekly (#1282) --- recipe_scrapers/womensweeklyfood.py | 19 + .../womensweeklyfood.json | 39 - .../womensweeklyfood_1.json | 30 + ...d.testhtml => womensweeklyfood_1.testhtml} | 1366 ++++++---- .../womensweeklyfood_2.json | 96 + .../womensweeklyfood_2.testhtml | 2315 +++++++++++++++++ 6 files changed, 3264 insertions(+), 601 deletions(-) delete mode 100644 tests/test_data/womensweeklyfood.com.au/womensweeklyfood.json create mode 100644 tests/test_data/womensweeklyfood.com.au/womensweeklyfood_1.json rename tests/test_data/womensweeklyfood.com.au/{womensweeklyfood.testhtml => womensweeklyfood_1.testhtml} (57%) create mode 100644 tests/test_data/womensweeklyfood.com.au/womensweeklyfood_2.json create mode 100644 tests/test_data/womensweeklyfood.com.au/womensweeklyfood_2.testhtml diff --git a/recipe_scrapers/womensweeklyfood.py b/recipe_scrapers/womensweeklyfood.py index 4b56fea47..ec0691c76 100644 --- a/recipe_scrapers/womensweeklyfood.py +++ b/recipe_scrapers/womensweeklyfood.py @@ -1,6 +1,8 @@ import re from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients +from ._utils import normalize_string class WomensWeeklyFood(AbstractScraper): @@ -10,3 +12,20 @@ def host(cls): def instructions(self): return re.sub(r"\d+\.\n", "", self.schema.instructions()) + + def ingredients(self): + ingredients_elements = self.soup.select( + ".recipe-ingredients__item span[itemprop='ingredients']" + ) + return [ + normalize_string(ingredient.get_text()) + for ingredient in ingredients_elements + ] + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".recipe-ingredients__title", + ".recipe-ingredients__item span[itemprop='ingredients']", + ) diff --git a/tests/test_data/womensweeklyfood.com.au/womensweeklyfood.json b/tests/test_data/womensweeklyfood.com.au/womensweeklyfood.json deleted file mode 100644 index df6f54970..000000000 --- a/tests/test_data/womensweeklyfood.com.au/womensweeklyfood.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "author": "Sarah McInerney", - "canonical_url": "https://www.womensweeklyfood.com.au/recipe/baking/classic-lamingtons-17017/", - "site_name": "Women's Weekly Food", - "host": "womensweeklyfood.com.au", - "language": "en-AU", - "title": "Classic lamingtons", - "ingredients": [ - "4 eggs", - "2/3 cup (150g) caster sugar", - "1 cup (150g) self-raising flour", - "1/4 cup (35g) cornflour", - "25 gram soft butter, chopped", - "1/3 cup (80ml) boiling water", - "4 cups (270g) desiccated coconut", - "Chocolate icing", - "4 2/3 cups (750g) icing sugar mixture", - "1/2 cup (50g) cocoa powder", - "20 grams soft butter", - "3/4 cup (180ml) milk" - ], - "instructions_list": [ - "Preheat the oven to 180°C (160°C fan-forced). Grease and flour a 20cm x 30cm lamington pan, line base with baking paper.", - "Beat eggs in a small bowl with an electric mixer until light in colour. Gradually add sugar; beat for 8 minutes or until the mixture is thick. Mixture should form thick ribbons when the beaters are lifted.", - "Meanwhile, sift flour and cornflour together three times. Combine butter and boiling water in a small heatproof bowl.", - "Transfer egg mixture to a large bowl. Sift the flour mixture over the egg mixture; using a balloon whisk or a large metal spoon, gently fold the flour into the egg mixture, then fold in the butter mixture.", - "Pour mixture into prepared pan. Bake in a moderate oven for about 25 minutes or until sponge springs back when touched lightly in the centre and comes away from side of pan. Turn cake onto a wire rack to cool.", - "Cut cake into 20 even pieces", - "Meanwhile, to make chocolate icing, sift the icing sugar and cocoa into a large heatproof bowl; add the butter and milk; stir over a medium saucepan of simmering water until icing is smooth and thick enough to coat the back of a spoon. Divide icing mixture into 2 small bowls.", - "Place coconut in a shallow bowl.", - "Using a large fork, dip each piece of cake briefly into icing until cake is coated in icing. Hold over bowl to drain off any excess. Dip half the cake pieces in one bowl of icing and the other half in the second bowl of icing. (We have separated the icing into two bowls, as cake crumbs will thicken the icing and make it difficult to use.) If the icing becomes too thick, stand it over hot water while dipping, or reheat gently with a little more milk. If necessary, strain the icing into a clean bowl.", - "Toss cake gently in coconut. Transfer cake to a wire rack; stand until set" - ], - "yields": "10 servings", - "description": "It's a bit of a process but so, so worth it!", - "total_time": 60, - "cook_time": 60, - "image": "https://i0.wp.com/www.womensweeklyfood.com.au/wp-content/uploads/sites/4/2021/07/28/17017/HL1121D18-scaled.jpg?fit=2560%2C2133&ssl=1" -} diff --git a/tests/test_data/womensweeklyfood.com.au/womensweeklyfood_1.json b/tests/test_data/womensweeklyfood.com.au/womensweeklyfood_1.json new file mode 100644 index 000000000..cfdc5b6a0 --- /dev/null +++ b/tests/test_data/womensweeklyfood.com.au/womensweeklyfood_1.json @@ -0,0 +1,30 @@ +{ + "author": "Sarah McInerney", + "canonical_url": "https://www.womensweeklyfood.com.au/recipe/air-fryer/air-fryer-polenta-chips/", + "site_name": "Women's Weekly Food", + "host": "womensweeklyfood.com.au", + "language": "en-AU", + "title": "Air fryer polenta chips", + "ingredients": [ + "3 cups (750ml) chicken or vegetable stock", + "1 cup (170g) instant polenta", + "30g butter, chopped", + "1¼ cups (100g) finely grated parmesan", + "cooking oil spray", + "salt flakes, to serve" + ], + "instructions_list": [ + "Bring stock to the boil in a large deep saucepan. Add polenta in a thin steady stream and whisk until the mixture comes to the boil. Reduce heat to low. Cook, stirring with a long-handled wooden spoon or whisk, for 10 minutes or until soft and thick. Stir in butter and ½ cup (40g) of the grated parmesan.", + "Grease a deep 20cm square cake pan; line base and sides with baking paper. Pour polenta mixture into pan. Cover; refrigerate for 3 hours to firm.", + "Preheat the air fryer to 200°C for 3 minutes.", + "Turn polenta out from the pan; cut into 20 chips. Place chips on a tray; scatter with remaining grated parmesan, turning to coat all sides, then spray generously with oil.", + "Taking care, spray air fryer basket with oil, then place chips in basket. At 200°C, cook for 15 minutes, turning halfway through cooking time, or until chips are golden brown and crisp.", + "Serve polenta chips sprinkled with salt flakes." + ], + "description": "Serve these crisp, cheesy polenta chips at your next party.", + "total_time": 45, + "cook_time": 30, + "prep_time": 15, + "cooking_method": "air fryer", + "image": "https://api.photon.aremedia.net.au/wp-content/uploads/sites/4/2024/10/recipe-air-fryer-polenta-chips.jpg?fit=1080%2C1080" +} diff --git a/tests/test_data/womensweeklyfood.com.au/womensweeklyfood.testhtml b/tests/test_data/womensweeklyfood.com.au/womensweeklyfood_1.testhtml similarity index 57% rename from tests/test_data/womensweeklyfood.com.au/womensweeklyfood.testhtml rename to tests/test_data/womensweeklyfood.com.au/womensweeklyfood_1.testhtml index 8e7d6c248..20dc5095a 100644 --- a/tests/test_data/womensweeklyfood.com.au/womensweeklyfood.testhtml +++ b/tests/test_data/womensweeklyfood.com.au/womensweeklyfood_1.testhtml @@ -1,3 +1,4 @@ + @@ -6,143 +7,265 @@ - + + + + + + - - Classic Lamington Recipe | Women's Weekly Food - - + + Air fryer polenta chips | Women's Weekly Food + + - - - + + + - - + + - - - + - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - + + + + + + + + + - +
    -
    -
    + +
    + +
    Advertisement
    +
    @@ -634,23 +841,22 @@ body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray:
    -
    -
    +
    +
    -
    - - Baking - +
    + Home Air fryer
    +
    -
    +
    -

    Classic lamingtons

    -
    It's a bit of a process but so, so worth it!
    +

    Air fryer polenta chips

    +
    Serve these crisp, cheesy polenta chips at your next party.
    @@ -658,68 +864,68 @@ body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray:
    - Classic lamingtons + Air fryer polenta chips on a rack
    -
    +
    -
    - - 10 -
    +
    + + 20 +
    +
    + +
    + 15M +
    +
    -
    - 1H -
    +
    + 30M +
    +
    + +
    + 3H +
    +
    +
    + +
    + 45M +
    +
    + +
    -
    @@ -858,213 +1065,220 @@ body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray:
    -

    Whether it’s a special day or just for morning tea, this lamington recipe will hit the spot.

    -

    Looking for more lovely lamington recipes?

    - -
    - - - - - -
    Loading the player...
    -
    -
    + + +

    Using instant polenta makes these air fryer polenta chips a fuss-free option for your next dinner party. They’re quick to make but you’ll need to factor in three hours of refrigeration time.

    -
    + +

    Ingredients

    -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    - Chocolate icing
    -
    +

    Method

    1. -

    Preheat the oven to 180°C (160°C fan-forced). Grease and flour a 20cm x 30cm lamington pan, line base with baking paper.

    +

    Bring stock to the boil in a large deep saucepan. Add polenta in a thin steady stream and whisk until the mixture comes to the boil. Reduce heat to low. Cook, stirring with a long-handled wooden spoon or whisk, for 10 minutes or until soft and thick. Stir in butter and ½ cup (40g) of the grated parmesan.

    -
    2. -

    Beat eggs in a small bowl with an electric mixer until light in colour. Gradually add sugar; beat for 8 minutes or until the mixture is thick. Mixture should form thick ribbons when the beaters are lifted.

    +
    2. +

    Grease a deep 20cm square cake pan; line base and sides with baking paper. Pour polenta mixture into pan. Cover; refrigerate for 3 hours to firm.

    3. -

    Meanwhile, sift flour and cornflour together three times. Combine butter and boiling water in a small heatproof bowl.

    +

    Preheat the air fryer to 200°C for 3 minutes.

    4. -

    Transfer egg mixture to a large bowl. Sift the flour mixture over the egg mixture; using a balloon whisk or a large metal spoon, gently fold the flour into the egg mixture, then fold in the butter mixture.

    +

    Turn polenta out from the pan;  cut into 20 chips. Place chips on a tray; scatter with remaining grated parmesan, turning to coat all sides, then spray generously with oil.

    5. -

    Pour mixture into prepared pan. Bake in a moderate oven for about 25 minutes or until sponge springs back when touched lightly in the centre and comes away from side of pan. Turn cake onto a wire rack to cool.

    +

    Taking care, spray air fryer basket with oil, then place chips in basket. At 200°C, cook for 15 minutes, turning halfway through cooking time, or until chips are golden brown and crisp.

    6. -

    Cut cake into 20 even pieces

    +

    Serve polenta chips sprinkled with salt flakes.

    +
    -
    7. -

    Meanwhile, to make chocolate icing, sift the icing sugar and cocoa into a large heatproof bowl; add the butter and milk; stir over a medium saucepan of simmering water until icing is smooth and thick enough to coat the back of a spoon. Divide icing mixture into 2 small bowls.

    -
    +

    What to serve with these air fryer polenta chips

    +

    Serve polenta chips with heated store-bought arrabbiata sauce. Or make your own salsa verde.

    -
    8. -

    Place coconut in a shallow bowl.

    -
    +

    What is polenta?

    -
    9. -

    Using a large fork, dip each piece of cake briefly into icing until cake is coated in icing. Hold over bowl to drain off any excess. Dip half the cake pieces in one bowl of icing and the other half in the second bowl of icing. (We have separated the icing into two bowls, as cake crumbs will thicken the icing and make it difficult to use.) If the icing becomes too thick, stand it over hot water while dipping, or reheat gently with a little more milk. If necessary, strain the icing into a clean bowl.

    -
    +

    Polenta is a flour-like cereal made of ground corn (maize). This recipe calls for instant polenta, which is more finely ground than regular polenta and thus cooks more quickly.

    +
    +
    +

    More air fryer snacks

    + +
    + +
    + + +
    +
    + +
    +
    + +
    - +
    + + + + +
    +
    + + +
    +
    +
    @@ -1088,12 +1299,127 @@ playlist: "https://cdn.jwplayer.com/v2/media/Olcvb4ER", +
    +
    +

    Related stories

    + +
    + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    +
    + + + + + +
    +
    + + +
    +
    + +
    +
    + + + +
    +
    -
    +
    Advertisement
    +
    -
    +
    -
    +
    - + - -
    -
    -
    -
    -
    -
    -
    - -
    -
    -

    Related stories

    - - - -
    - -
    -
    -
    -
    -
    -
    -
    - -
    - -
    -
    - - -
    - Bircher banana bread, fresh from the oven and sliced, ready to serve. - -
    -
    - -
    - -
    - - Healthy -
    -
    - -

    - - Bircher banana bread -

    - -
    - This bircher banana bread is like overnight oats in banana bread form. You will need to start this recipe a day ahead.
    - - -
    -
    -
    - - -
    -
    -
    + +
    + +
    Advertisement
    +
    -
    +
    @@ -1486,19 +1656,19 @@ playlist: "https://cdn.jwplayer.com/v2/media/Olcvb4ER",
    - + - - - - - - - - - + + + + + + + + + + + @@ -1621,6 +1857,9 @@ playlist: "https://cdn.jwplayer.com/v2/media/Olcvb4ER", + + + @@ -1699,7 +1938,7 @@ c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091 - + @@ -1716,6 +1955,9 @@ c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091 + + + diff --git a/tests/test_data/womensweeklyfood.com.au/womensweeklyfood_2.json b/tests/test_data/womensweeklyfood.com.au/womensweeklyfood_2.json new file mode 100644 index 000000000..f33674e9f --- /dev/null +++ b/tests/test_data/womensweeklyfood.com.au/womensweeklyfood_2.json @@ -0,0 +1,96 @@ +{ + "author": "Sarah McInerney", + "canonical_url": "https://www.womensweeklyfood.com.au/recipe/dinner/pulled-pork-sliders-32716/", + "site_name": "Women's Weekly Food", + "host": "womensweeklyfood.com.au", + "language": "en-AU", + "title": "Pulled pork sliders with apple slaw and chipotle mayo", + "ingredients": [ + "1.4 kg boneless pork roast shoulder", + "2 chipotle chillies in adobo sauce (see tips), chopped finely", + "2 tablespoons adobo sauce from canned chipotle chillies in adobo sauce", + "¼ cup (25g) smoked paprika", + "2 tablespoons ground cumin", + "2 tablespoons ground coriander", + "2 tablespoons olive oil", + "2 tablespoons fresh thyme sprigs", + "2 tablespoons fresh oregano sprigs", + "330 ml beer", + "1 cup (250ml) beef stock", + "4 cloves garlic, bruised, skin on", + "3 cinnamon sticks", + "2 tablespoons lime juice", + "12 mini wholemeal mixed seed bread rolls (580g)", + "2 small red delicious apples (260g), unpeeled, cut into matchsticks, reserve cores", + "1 small fennel bulb (200g), cut into matchsticks, reserve stems and fronds", + "2 small shallots (50g), peeled (skins reserved), sliced thinly", + "1 bunch fresh coriander (100g), stems reserved, leaves chopped", + "1 tablespoon olive oil", + "1 teaspoon finely grated lime rind", + "1 tablespoon lime juice", + "1 egg", + "½ teaspoon hot English mustard", + "1 cup (250ml) grape seed oil", + "1 tablespoon apple cider vinegar", + "1 chipotle chilli in adobo sauce (see tips), chopped finely", + "2 tablespoons adobo sauce from canned chipotle chillies in adobo sauce" + ], + "ingredient_groups": [ + { + "ingredients": [ + "1.4 kg boneless pork roast shoulder", + "2 chipotle chillies in adobo sauce (see tips), chopped finely", + "2 tablespoons adobo sauce from canned chipotle chillies in adobo sauce", + "¼ cup (25g) smoked paprika", + "2 tablespoons ground cumin", + "2 tablespoons ground coriander", + "2 tablespoons olive oil", + "2 tablespoons fresh thyme sprigs", + "2 tablespoons fresh oregano sprigs", + "330 ml beer", + "1 cup (250ml) beef stock", + "4 cloves garlic, bruised, skin on", + "3 cinnamon sticks", + "2 tablespoons lime juice", + "12 mini wholemeal mixed seed bread rolls (580g)" + ], + "purpose": null + }, + { + "ingredients": [ + "2 small red delicious apples (260g), unpeeled, cut into matchsticks, reserve cores", + "1 small fennel bulb (200g), cut into matchsticks, reserve stems and fronds", + "2 small shallots (50g), peeled (skins reserved), sliced thinly", + "1 bunch fresh coriander (100g), stems reserved, leaves chopped", + "1 tablespoon olive oil", + "1 teaspoon finely grated lime rind", + "1 tablespoon lime juice" + ], + "purpose": "Apple slaw" + }, + { + "ingredients": [ + "1 egg", + "½ teaspoon hot English mustard", + "1 cup (250ml) grape seed oil", + "1 tablespoon apple cider vinegar", + "1 chipotle chilli in adobo sauce (see tips), chopped finely", + "2 tablespoons adobo sauce from canned chipotle chillies in adobo sauce" + ], + "purpose": "Chipotle mayo" + } + ], + "instructions_list": [ + "Make apple slaw. Place ingredients, including reserved fennel fronds, in a medium bowl; toss gently to combine. Season to taste. Refrigerate until required.", + "Preheat oven to 150°C.", + "Cut pork in half lengthways; pat dry with paper towel. Combine chopped chipotle, adobo sauce, paprika, cumin and ground coriander in a large bowl; add pork, turn to coat. Season.", + "Heat oil in a large 4 litre (16 cup) flameproof baking dish over high heat. Cook pork for 2 minutes each side or until browned. Remove from dish. Wipe dish clean, add any leftover marinade to dish, with thyme, oregano, beer, stock, garlic, cinnamon and reserved off-cuts (from the apple slaw). Bring to the boil; cover, then transfer to oven. Bake pork for 2 hours or until tender.", + "Meanwhile, make chipotle mayo. Blend or process egg and mustard until combined. With the motor operating, add oil, drop by drop at first, then in a thin, steady stream, until mixture thickens. Stir in vinegar, chopped chipotle and adobo sauce. Season to taste.", + "Remove pork from dish. Using two forks, shred meat; place in a medium bowl. Transfer braising liquid to a large deep frying pan. Bring to the boil; boil for 15 minutes or until reduced to 1 cup (250ml). Stir lime juice into reduced liquid; pour over pork, toss to coat.", + "Split rolls in half; divide slaw, pork and mayo among rolls." + ], + "description": "Sweet slaw and smoky mayo give these burgers a gorgeous edge.", + "total_time": 150, + "cook_time": 150, + "image": "https://api.photon.aremedia.net.au/wp-content/uploads/sites/4/2021/09/17/32716/HL0944C14-scaled.jpg?fit=2560%2C2133" +} diff --git a/tests/test_data/womensweeklyfood.com.au/womensweeklyfood_2.testhtml b/tests/test_data/womensweeklyfood.com.au/womensweeklyfood_2.testhtml new file mode 100644 index 000000000..39cd43740 --- /dev/null +++ b/tests/test_data/womensweeklyfood.com.au/womensweeklyfood_2.testhtml @@ -0,0 +1,2315 @@ + + + + + + + + + + + + + + + + + + + + Pulled pork sliders with apple slaw and chipotle mayo | Women's Weekly Food + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    + +
    + +
    + +
    Advertisement
    + +
    +
    +
    +
    +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    + Home Dinner ideas
    +
    +
    +
    + +
    +

    Pulled pork sliders with apple slaw and chipotle mayo

    +
    Sweet slaw and smoky mayo give these burgers a gorgeous edge. +
    + +
    + +
    + +
    + + +
    + +
    + +
    +
    +
    + + +
    +
    + +
    + + 12 +
    +
    + +
    + +
    + +
    + 2H + 30M +
    +
    + + + + +
    + + +
    +
    + + + +
    +
    + +
    +
    + +
    +
    +
    + +

    Smoky chipotle mayo gives these classic pulled pork burgersa little touch that is far from ordinary. Apple slaw adds a touch of sweetness.

    +

    Looking for more burger recipes?

    + + +
    +

    Ingredients

    + +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    Apple slaw
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    Chipotle mayo
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +

    Method

    + + + +
    1. +

    Make apple slaw. Place ingredients, including reserved fennel fronds, in a medium bowl; toss gently to combine. Season to taste. Refrigerate until required.

    +
    + + + + +
    2. +

    Preheat oven to 150°C.

    +
    + + + + +
    3. +

    Cut pork in half lengthways; pat dry with paper towel. Combine chopped chipotle, adobo sauce, paprika, cumin and ground coriander in a large bowl; add pork, turn to coat. Season.

    +
    + + + + +
    4. +

    Heat oil in a large 4 litre (16 cup) flameproof baking dish over high heat. Cook pork for 2 minutes each side or until browned. Remove from dish. Wipe dish clean, add any leftover marinade to dish, with thyme, oregano, beer, stock, garlic, cinnamon and reserved off-cuts (from the apple slaw). Bring to the boil; cover, then transfer to oven. Bake pork for 2 hours or until tender.

    +
    + + + + +
    5. +

    Meanwhile, make chipotle mayo. Blend or process egg and mustard until combined. With the motor operating, add oil, drop by drop at first, then in a thin, steady stream, until mixture thickens. Stir in vinegar, chopped chipotle and adobo sauce. Season to taste.

    +
    + + + + +
    6. +

    Remove pork from dish. Using two forks, shred meat; place in a medium bowl. Transfer braising liquid to a large deep frying pan. Bring to the boil; boil for 15 minutes or until reduced to 1 cup (250ml). Stir lime juice into reduced liquid; pour over pork, toss to coat.

    +
    + + + + +
    7. +

    Split rolls in half; divide slaw, pork and mayo among rolls.

    +
    + +
    + + + +
    +

    You will need a 340g can chipotle chillies in adobo sauce for this recipe, available from grocery stores or delicatessens in the spice section. Wash any dirt and grit away from the coriander roots before using. Pulled pork can be stored in the fridge for up to 3 days or freezer for up to 3 months.

    +Note
    + + +
    +
    +

    Related stories

    + +
    + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    +
    + + + +
    + +
    + + +
    +
    +
    +
    +
    + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + + + +
    +
    + +
    Advertisement
    + +
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    + +
    +
    +
    + + +
    + +
    Advertisement
    + +
    +
    +
    +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 44773a9bd4766241f96bf4674eb7edf3514350a2 Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:15:11 -0700 Subject: [PATCH 12/19] Ingredient grouping support for zenbelly (#1283) --- recipe_scrapers/zenbelly.py | 9 + .../{zenbelly.json => zenbelly_1.json} | 0 ...{zenbelly.testhtml => zenbelly_1.testhtml} | 696 +++++++++--------- tests/test_data/zenbelly.com/zenbelly_2.json | 88 +++ .../zenbelly.com/zenbelly_2.testhtml | 205 ++++++ 5 files changed, 650 insertions(+), 348 deletions(-) rename tests/test_data/zenbelly.com/{zenbelly.json => zenbelly_1.json} (100%) rename tests/test_data/zenbelly.com/{zenbelly.testhtml => zenbelly_1.testhtml} (99%) create mode 100644 tests/test_data/zenbelly.com/zenbelly_2.json create mode 100644 tests/test_data/zenbelly.com/zenbelly_2.testhtml diff --git a/recipe_scrapers/zenbelly.py b/recipe_scrapers/zenbelly.py index 838a25001..4f00daa84 100644 --- a/recipe_scrapers/zenbelly.py +++ b/recipe_scrapers/zenbelly.py @@ -1,7 +1,16 @@ from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients class ZenBelly(AbstractScraper): @classmethod def host(cls): return "zenbelly.com" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".tasty-recipes-ingredients-body p", + ".tasty-recipes-ingredients-body ul li", + ) diff --git a/tests/test_data/zenbelly.com/zenbelly.json b/tests/test_data/zenbelly.com/zenbelly_1.json similarity index 100% rename from tests/test_data/zenbelly.com/zenbelly.json rename to tests/test_data/zenbelly.com/zenbelly_1.json diff --git a/tests/test_data/zenbelly.com/zenbelly.testhtml b/tests/test_data/zenbelly.com/zenbelly_1.testhtml similarity index 99% rename from tests/test_data/zenbelly.com/zenbelly.testhtml rename to tests/test_data/zenbelly.com/zenbelly_1.testhtml index ce1e97d77..737cd77a9 100644 --- a/tests/test_data/zenbelly.com/zenbelly.testhtml +++ b/tests/test_data/zenbelly.com/zenbelly_1.testhtml @@ -1,349 +1,349 @@ -Gingerbread - zenbelly Zenbelly - -
    CLOSE
    CLOSE
    Zenbelly + +
    CLOSE
    CLOSE
    diff --git a/tests/test_data/zenbelly.com/zenbelly_2.json b/tests/test_data/zenbelly.com/zenbelly_2.json new file mode 100644 index 000000000..e8944ac10 --- /dev/null +++ b/tests/test_data/zenbelly.com/zenbelly_2.json @@ -0,0 +1,88 @@ +{ + "author": "zenbelly", + "canonical_url": "https://www.zenbelly.com/crispy-fish-tacos/", + "site_name": "zenbelly", + "host": "zenbelly.com", + "language": "en-US", + "title": "Crispy Fish Tacos", + "ingredients": [ + "1/2 can coconut milk", + "Juice of one lime", + "4 cloves Garlic, minced", + "1 teaspoon Salt", + "1 teaspoon Onion powder", + "1/4 teaspoon Oregano", + "1 1/2 pounds firm fleshed fish such as mahi, cod, halibut", + "1 cup Beth Blends flour blend", + "tortillas and sliced avocado, for serving", + "1/2 head green or purple cabbage, shredded", + "1 handful cilantro leaves and stems, chopped", + "juice of one lime", + "1/2 teaspoon ground coriander (optional)", + "pinch salt", + "2 cups diced mango (thawed from frozen)", + "1/2 large shallot, roughly chopped", + "1 jalapeño, seeds and membrane removed if preferred, roughly chopped (optional)", + "small handful cilantro leaves and stems", + "juice of one lime", + "pinch salt" + ], + "ingredient_groups": [ + { + "ingredients": [ + "1/2 can coconut milk", + "Juice of one lime", + "4 cloves Garlic, minced", + "1 teaspoon Salt", + "1 teaspoon Onion powder", + "1/4 teaspoon Oregano", + "1 1/2 pounds firm fleshed fish such as mahi, cod, halibut", + "1 cup Beth Blends flour blend", + "tortillas and sliced avocado, for serving" + ], + "purpose": "for the fish:" + }, + { + "ingredients": [ + "1/2 head green or purple cabbage, shredded", + "1 handful cilantro leaves and stems, chopped", + "juice of one lime", + "1/2 teaspoon ground coriander (optional)", + "pinch salt" + ], + "purpose": "for the slaw:" + }, + { + "ingredients": [ + "2 cups diced mango (thawed from frozen)", + "1/2 large shallot, roughly chopped", + "1 jalapeño, seeds and membrane removed if preferred, roughly chopped (optional)", + "small handful cilantro leaves and stems", + "juice of one lime", + "pinch salt" + ], + "purpose": "for the mango salsa:" + } + ], + "instructions_list": [ + "for the fish", + "In a medium bowl, combine the marinade ingredients (coconut milk, lime juice, garlic, salt, onion powder, and oregano.", + "Slice the fish into strips about 1-inch wide and add to the bowl. Set aside while you prep the rest of the tacos, or around 30 minutes.", + "After the fish has marinaded, set up a dredging station – a wide shallow bowl or plate with the flour, and an empty plate to place the dredged fish. Pull the fish out of the marinade, allowing the excess to drip off and roll in the flour.", + "Heat a large skillet over medium-high heat and add a good layer of oil. Once it’s shimmering, add the fish and cook for a minute or two on each side, or until browned on all sides and cooked through. Remove to a wire rack-lined baking sheet or several layers of paper towels.", + "Assemble tacos by placing a couple pieces of the fish on a warmed tortilla and top with slaw, salsa, and sliced avocado" + ], + "category": "fish and seafood", + "yields": "4 servings", + "total_time": 40, + "cook_time": 10, + "prep_time": 30, + "ratings": 5.0, + "ratings_count": 1, + "image": "https://www.zenbelly.com/wp-content/uploads/2022/03/crispy-fish-tacos-2-scaled-225x225.jpg", + "keywords": [ + "fish", + "tacos", + "AIP" + ] +} diff --git a/tests/test_data/zenbelly.com/zenbelly_2.testhtml b/tests/test_data/zenbelly.com/zenbelly_2.testhtml new file mode 100644 index 000000000..8c4ded777 --- /dev/null +++ b/tests/test_data/zenbelly.com/zenbelly_2.testhtml @@ -0,0 +1,205 @@ + + crispy fish tacos - gluten-free + AIP compliant Zenbelly + +
    \ No newline at end of file From fc37fc08189d03e747a887136ddc7ad1744724c5 Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:44:53 -0700 Subject: [PATCH 13/19] Ingredient grouping support for tudogostoso (#1285) --- recipe_scrapers/tudogostoso.py | 9 + .../{tudogostoso.json => tudogostoso_1.json} | 0 ...ostoso.testhtml => tudogostoso_1.testhtml} | 0 .../tudogostoso.com.br/tudogostoso_2.json | 68 + .../tudogostoso.com.br/tudogostoso_2.testhtml | 1128 +++++++++++++++++ 5 files changed, 1205 insertions(+) rename tests/test_data/tudogostoso.com.br/{tudogostoso.json => tudogostoso_1.json} (100%) rename tests/test_data/tudogostoso.com.br/{tudogostoso.testhtml => tudogostoso_1.testhtml} (100%) create mode 100644 tests/test_data/tudogostoso.com.br/tudogostoso_2.json create mode 100644 tests/test_data/tudogostoso.com.br/tudogostoso_2.testhtml diff --git a/recipe_scrapers/tudogostoso.py b/recipe_scrapers/tudogostoso.py index b48aec19b..c7fc0a70e 100644 --- a/recipe_scrapers/tudogostoso.py +++ b/recipe_scrapers/tudogostoso.py @@ -1,7 +1,16 @@ from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients class TudoGostoso(AbstractScraper): @classmethod def host(cls): return "tudogostoso.com.br" + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".recipe-ingredients-subtitle", + ".recipe-ingredients-item", + ) diff --git a/tests/test_data/tudogostoso.com.br/tudogostoso.json b/tests/test_data/tudogostoso.com.br/tudogostoso_1.json similarity index 100% rename from tests/test_data/tudogostoso.com.br/tudogostoso.json rename to tests/test_data/tudogostoso.com.br/tudogostoso_1.json diff --git a/tests/test_data/tudogostoso.com.br/tudogostoso.testhtml b/tests/test_data/tudogostoso.com.br/tudogostoso_1.testhtml similarity index 100% rename from tests/test_data/tudogostoso.com.br/tudogostoso.testhtml rename to tests/test_data/tudogostoso.com.br/tudogostoso_1.testhtml diff --git a/tests/test_data/tudogostoso.com.br/tudogostoso_2.json b/tests/test_data/tudogostoso.com.br/tudogostoso_2.json new file mode 100644 index 000000000..714334051 --- /dev/null +++ b/tests/test_data/tudogostoso.com.br/tudogostoso_2.json @@ -0,0 +1,68 @@ +{ + "author": "TudoGostoso", + "canonical_url": "tudogostoso.com.br", + "site_name": "TudoGostoso", + "host": "tudogostoso.com.br", + "language": "pt-br", + "title": "Bolo de chocolate simples", + "ingredients": [ + "3 ovos", + "1 e 1/2 xícara (chá) de açúcar", + "2 xícaras (chá) de farinha de trigo", + "1 xícara (chá) de chocolate em pó ou achocolatado", + "1/2 xícara (chá) de óleo", + "1 colher (sopa) de fermento em pó", + "1 pitada de sal", + "1 xícara (chá) de água quente", + "4 colheres (sopa) de leite", + "1/2 xícara (chá) de chocolate em pó", + "1 colher (sopa) de manteiga", + "1 xícara (chá) de açúcar" + ], + "ingredient_groups": [ + { + "ingredients": [ + "3 ovos", + "1 e 1/2 xícara (chá) de açúcar", + "2 xícaras (chá) de farinha de trigo", + "1 xícara (chá) de chocolate em pó ou achocolatado", + "1/2 xícara (chá) de óleo", + "1 colher (sopa) de fermento em pó", + "1 pitada de sal", + "1 xícara (chá) de água quente" + ], + "purpose": "Massa" + }, + { + "ingredients": [ + "4 colheres (sopa) de leite", + "1/2 xícara (chá) de chocolate em pó", + "1 colher (sopa) de manteiga", + "1 xícara (chá) de açúcar" + ], + "purpose": "Cobertura" + } + ], + "instructions_list": [ + "Massa", + "Em um liquidificador, bata os ovos, o açúcar, o óleo, o achocolatado e a farinha de trigo.", + "Despeje a massa em uma tigela e adicione a água quente e o fermento, misturando bem.", + "Despeje a massa em uma forma untada e asse em forno médio-alto (200° C), preaquecido, por 40 minutos.", + "Desenforme ainda quente.", + "Cobertura", + "Em uma panela, leve todos os ingredientes ao fogo até levantar fervura.", + "Despeje ainda quente em cima do bolo." + ], + "category": "Bolos e tortas doces", + "yields": "12 servings", + "description": "Quando se trata de uma sobremesa clássica e deliciosa, poucas opções são tão tentadoras quanto um bom bolo de chocolate. Esta receita simples e fácil de preparar é a solução perfeita para satisfazer aquele desejo por um doce delicioso e prazeroso. Combinando ingredientes básicos, como ovos, açúcar, farinha de trigo e um toque generoso de chocolate em pó, este bolo derrete na boca a cada mordida. A adição estratégica de água quente e fermento em pó confere a textura ideal para esse bolo, garantindo maciez e um sabor que agrada a todos. O segredo, no entanto, está na cobertura deliciosa que coroa essa iguaria. Uma mistura cuidadosa de leite, chocolate em pó, manteiga e açúcar é aquecida até atingir o ponto de fervura, resultando em uma cobertura cremosa e irresistível. Ao ser derramada sobre o bolo ainda quente, essa cobertura se funde perfeitamente à massa, proporcionando uma experiência de sabor inesquecível. Este bolo é uma excelente opção para encontros familiares, momentos de celebração ou simplesmente para um momento de prazer pessoal. Siga os passos simples deste modo de preparo para criar um bolo que encantará os paladares e aquecerá os corações de todos à mesa.", + "total_time": 40, + "cook_time": 40, + "prep_time": 10, + "ratings": 4.6, + "ratings_count": 273, + "image": "https://static.itdg.com.br/images/1200-675/3b03a942ab534200a0a80eb324828ccb/246606-postprocess-71802381-1893-4fbe-b302-726bfca18774.jpg", + "keywords": [ + "Receita de Bolo de chocolate simples" + ] +} diff --git a/tests/test_data/tudogostoso.com.br/tudogostoso_2.testhtml b/tests/test_data/tudogostoso.com.br/tudogostoso_2.testhtml new file mode 100644 index 000000000..ebd09b200 --- /dev/null +++ b/tests/test_data/tudogostoso.com.br/tudogostoso_2.testhtml @@ -0,0 +1,1128 @@ + + + + + + + + + + + + + + + + + + + + + + + +Bolo de chocolate simples - TudoGostoso + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
      +
    • Entrar
    • +
    • Cadastrar
    • +
    +
    +
    Bolo de chocolate simples
    +
    +
    +Icone étoile +Icone étoile +Icone étoile +Icone étoile +Icone étoile +Icone étoile + +
    4.6 / 5 + +(273 avaliações) + +
    Ver todos os 168 comentários
    + +
    +
    +
    +
    +
    +Bolo de chocolate simples
    +Assistir : Nega maluca +Video 1 de 1 + +
    +
    +Bolo de chocolate simplesBolo de chocolate simples@ Ana Alves +
    +Bolo de chocolate simplesBolo de chocolate simples@ TudoGostoso +
    +Bolo de chocolate simplesBolo de chocolate simples@ TudoGostoso +
    +Bolo de chocolate simplesBolo de chocolate simples@ TudoGostoso +
    +Bolo de chocolate simplesBolo de chocolate simples@ TudoGostoso +
    +
    Icone flèche +
    +
    +Nega maluca +
    Bolo de chocolate simples
    Bolo de chocolate simples
    Bolo de chocolate simples
    Bolo de chocolate simples
    Bolo de chocolate simples
    Icone flèche +
    +
    + +
    +
    +
    Compartilhar +
    +
    Imprimir
    +
    +
    +
    +
    Avatar de TudoGostoso
    Por TudoGostoso
    +

    Quando se trata de uma sobremesa clássica e deliciosa, poucas opções são tão tentadoras quanto um bom bolo de chocolate. Esta receita simples e fácil de preparar é a solução perfeita para satisfazer aquele desejo por um doce delicioso e prazeroso. Combinando ingredientes básicos, como ovos, açúcar, farinha de trigo e um toque generoso de chocolate em pó, este bolo derrete na boca a cada mordida. A adição estratégica de água quente e fermento em pó confere a textura ideal para esse bolo, garantindo maciez e um sabor que agrada a todos. O segredo, no entanto, está na cobertura deliciosa que coroa essa iguaria. Uma mistura cuidadosa de leite, chocolate em pó, manteiga e açúcar é aquecida até atingir o ponto de fervura, resultando em uma cobertura cremosa e irresistível. Ao ser derramada sobre o bolo ainda quente, essa cobertura se funde perfeitamente à massa, proporcionando uma experiência de sabor inesquecível. Este bolo é uma excelente opção para encontros familiares, momentos de celebração ou simplesmente para um momento de prazer pessoal. Siga os passos simples deste modo de preparo para criar um bolo que encantará os paladares e aquecerá os corações de todos à mesa.

    +

    Ingredientes +(12 porções)

    Massa

      +
    • +ovo3 ovos +
    • +
    • +açúcar1 e 1/2 xícara (chá) de açúcar +
    • +
    • +farinha de trigo2 xícaras (chá) de farinha de trigo +
    • +
    • +chocolate em pó1 xícara (chá) de chocolate em pó ou achocolatado +
    • +
    • +óleo1/2 xícara (chá) de óleo +
    • +
    • +fermento em pó químico1 colher (sopa) de fermento em pó +
    • +
    • +sal1 pitada de sal +
    • +
    • +água1 xícara (chá) de água quente +
    • +

    Cobertura

      +
    • +leite4 colheres (sopa) de leite +
    • +
    • +chocolate em pó1/2 xícara (chá) de chocolate em pó +
    • +
    • +manteiga1 colher (sopa) de manteiga +
    • +
    • +açúcar1 xícara (chá) de açúcar +
    • +

    Materiais

    +

    Ao clicar em comprar você será redirecionado para o site da Amazon.com.br

    +
    +

    Modo de preparo

    +
    +Modo de preparo : +
    +Preparo : +
    +
      +
    1. +1

      Massa

      +

      Em um liquidificador, bata os ovos, o açúcar, o óleo, o achocolatado e a farinha de trigo.

    2. +
    3. +2

      Despeje a massa em uma tigela e adicione a água quente e o fermento, misturando bem.

    4. +
    5. +3

      Despeje a massa em uma forma untada e asse em forno médio-alto (200° C), preaquecido, por 40 minutos.

    6. +
    7. +4

      Desenforme ainda quente.

    8. +
    9. +5

      Cobertura

      +

      Em uma panela, leve todos os ingredientes ao fogo até levantar fervura.

    10. +
    11. +
    12. +6

      Despeje ainda quente em cima do bolo.

    13. +
    + +
    +

    Informações adicionais

    +

    Dicas para preparar a melhor receita de bolo de chocolate

    +

     

    +

    Essa receita também pode ser feita no micro-ondas, utilizando uma forma própria. O tempo de espera é de 9 minutos na potência alta. Deixe esfriar por 20 minutos e desenforme.

    +

     

    +

    Um bom bolo de chocolate fofinho aquece o coraçãozinho, né? Quer deixar essa receita ainda mais deliciosa e chocolatuda? Adicione na massa chocolate meio amargo derretido em banho-maria! O sabor vai ficar ainda mais intenso e incrível, não vai dar vontade de parar de comer! Veja como derreter chocolate em banho-maria em nosso blog!

    +

     

    +

    Peneirar ingredientes, na hora de fazer a massa, ajuda com que o seu bolo de chocolate simples fique ainda mais lindo e cresça bastante! Por isso, peneire a farinha de trigo e os ovos antes de adicioná-los à massa! A farinha peneirada evita gruminhos na massa, fazendo com que fique lisa e cresça melhor, e os ovos peneirados tiram o gosto ou odor do ovo da receita, deixando o cheirinho de chocolate tomar conta de tudo! Incrível, né?

    +

     

    +

    Caso ache necessário, você pode fazer a sua receita de bolo de chocolate simples na batedeira em vez de fazer no liquidificador, o resultado fica perfeito também!

    +

     

    +

    Que tal ir além do bolo de chocolate simples?

    +

     

    +

    Que tal rechear seu bolo? Existem vários recheios que você pode fazer como beijinho de cocodoce de leitegeleia de morangomousse de chocolate , brigadeiro de creme de avelã e outros!

    +

     

    +

    Você também pode experimentar esse clássico com outras caldas: confira aqui três tipos de  calda de chocolate do TudoGostoso!

    +

     

    +

    Sabia que dá pra fazer essa receita na versão bolo de pote? Confira a receita do TudoGostoso e aprenda como fazer bolo no pote de chocolate!

    +

     

    +

    Procurando mais sobremesas com chocolate? Veja receitas com chocolate no TudoGostoso como receita de brownie, torta de chocolate, pavê de chocolate, cheesecake de chocolate e muito mais!

    +

     

    +

    No TudoGostoso você encontra diversas receitas perfeitas para a hora do café da tarde, como essa e muitas outras. Que tal conferir outro clássico da hora do lanche como o bolinho de chuva? Confira essa receita incrível! 

    +

     

    +

    Quem ama chocolate vai amar essa receita de bolo de caneca de micro-ondas: simples, prática e rápida!

    +

     

    +

    Agora que você já sabe como fazer bolo de chocolate fofinho, veja também:

    +

     

    +

    Como fazer bolo na air fryer: dicas infalíveis e uma receita deliciosa do TudoGostoso

    +

    Como fazer bolo de aniversário simples: veja 15 receitas fáceis

    +

    Como salvar bolo solado? 4 truques para reaproveitar a massa e evitar desperdício

    +

     

    +

     

    +
    Categorias relacionadas
    Comentários

    Obrigado pela participação! O seu comentário
    foi enviado e passará por aprovação antes de
    estar visível para todos.

    +
    +
    +
    +Um site do Grupo
      +
    • Quem somos
    • +
    • Política de privacidade
    • +
    • Termos de uso
    • +
    • Anuncie
    • +
    • Contato
    • +
    + + + \ No newline at end of file From 613769c91096bb4b2357be1ee0f8b95a1c5179e7 Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:02:10 -0700 Subject: [PATCH 14/19] Ingredient grouping support for tineno (#1286) --- recipe_scrapers/tineno.py | 9 + tests/test_data/tine.no/tineno_1.json | 47 + tests/test_data/tine.no/tineno_1.testhtml | 1584 +++++++++++++++++ .../tine.no/{tineno.json => tineno_2.json} | 37 + .../{tineno.testhtml => tineno_2.testhtml} | 0 5 files changed, 1677 insertions(+) create mode 100644 tests/test_data/tine.no/tineno_1.json create mode 100644 tests/test_data/tine.no/tineno_1.testhtml rename tests/test_data/tine.no/{tineno.json => tineno_2.json} (68%) rename tests/test_data/tine.no/{tineno.testhtml => tineno_2.testhtml} (100%) diff --git a/recipe_scrapers/tineno.py b/recipe_scrapers/tineno.py index b0ff99d41..ec9d062cf 100644 --- a/recipe_scrapers/tineno.py +++ b/recipe_scrapers/tineno.py @@ -1,6 +1,7 @@ import re from ._abstract import AbstractScraper +from ._grouping_utils import group_ingredients from ._utils import change_keys @@ -58,3 +59,11 @@ def instructions(self): return "\n".join( [i for i in self.schema.instructions().split("\n") if i != "Oppskrift"] ) + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + "#ingredient-groups-container h4", + "#ingredient-groups-container [itemprop='ingredients']", + ) diff --git a/tests/test_data/tine.no/tineno_1.json b/tests/test_data/tine.no/tineno_1.json new file mode 100644 index 000000000..a932e1972 --- /dev/null +++ b/tests/test_data/tine.no/tineno_1.json @@ -0,0 +1,47 @@ +{ + "author": "TINE", + "canonical_url": "https://www.tine.no/oppskrifter/middag-og-hovedretter/kylling-og-fjarkre/butter-chicken-p%C3%A5-20-minutter", + "site_name": "TINE", + "host": "tine.no", + "language": "no", + "title": "Butter chicken på 20 minutter", + "ingredients": [ + "1 stk rødløk", + "650 g kyllingfileter", + "2 ss malt gurkemeie", + "2 ts malt spisskummen", + "1 ss garam masala", + "1 ss malt koriander", + "0.5 ts tørket chiliflak", + "0.5 ts sort pepper", + "1 ts salt", + "1 ss frisk ingefær, finrevet", + "1 ss hvitløk finrevet", + "2 ss sitronsaft", + "2 ss matolje", + "400 g hermetiske tomater finhakkede", + "1 boks TINE® Lett Crème Fraîche 17 %", + "1 ss honning", + "1 ss TINE® Meierismør", + "65 g spinat" + ], + "instructions_list": [ + "Skjær opp løken i tynne båter og kyllingen i biter på ca. 3x3 cm og ha over i en bolle.", + "Bland sammen gurkemeie, spisskummen, garam masala, malt koriander, chiliflak, pepper, salt, ingefær, hvitløk, sitron og olje og ha det over i bollen sammen med løk og kylling. Bland godt.", + "Varm opp en stor stekepanne på høy varme. Stek kyllingen til den har fått en fin og gyllen farge.", + "Ha i tomater, Crème Fraîche og honnig. Rør rundt til du har fått en jevn saus.", + "La det putre et par minutter og rør inn smør og spinat.", + "Server gjerne med kokt ris, salat eller naanbrød." + ], + "category": "middag", + "yields": "4 servings", + "description": "Butter chicken, også kjent som murgh makhani, er en populær indisk rett med saftige kyllingbiter i en smakfull smørsaus.", + "total_time": 20, + "cuisine": "indisk", + "ratings": 4.1, + "ratings_count": 253, + "image": "https://www.tine.no/_/recipeimage/w_2880%2Ch_1620%2Cc_fill%2Cx_5824%2Cy_3276%2Cg_xy_center/recipeimage/lnd9azjpxpfrd29az1ja.jpg", + "keywords": [ + "kylling" + ] +} diff --git a/tests/test_data/tine.no/tineno_1.testhtml b/tests/test_data/tine.no/tineno_1.testhtml new file mode 100644 index 000000000..5ae7f1734 --- /dev/null +++ b/tests/test_data/tine.no/tineno_1.testhtml @@ -0,0 +1,1584 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Butter Chicken På 20 Minutter - Oppskrift fra TINE Kjøkken + + + + +
    + +
    + +
    + + +
    + + + + + + + +
    +
    + +
    +
    + +
    + + Butter chicken på 20 minutter +
    + +

    Butter chicken på 20 minutter

    +
    + + + 7 + +
    + + + + + + 253 +
    + +
    +
    +
    Enkel20 min
    +
    +
    + Butter chicken, også kjent som murgh makhani, er en populær indisk rett med saftige kyllingbiter i en smakfull smørsaus. +
    + + +
    +
    +

    Ingredienser

    +

    +Antall porsjoner

    +
    + + + +
    + +
    +
    +
      +
    • +
      1 stk
      +
      + + rødløk +
      +
    • +
    • +
      650 g
      +
      + + kyllingfileter +
      +
    • +
    • +
      2 ss
      +
      + + malt gurkemeie +
      +
    • +
    • +
      2 ts
      +
      + + malt spisskummen +
      +
    • +
    • +
      1 ss
      +
      + + garam masala +
      +
    • +
    • +
      1 ss
      +
      + + malt koriander +
      +
    • +
    • +
      ½ ts
      +
      + + tørket chiliflak +
      +
    • +
    • +
      ½ ts
      +
      + + sort pepper +
      +
    • +
    • +
      1 ts
      +
      + + salt +
      +
    • +
    • +
      1 ss
      +
      + + frisk ingefær, finrevet +
      +
    • +
    • +
      1 ss
      +
      + + hvitløk + finrevet
      +
    • +
    • +
      2 ss
      +
      + + sitronsaft +
      +
    • +
    • +
      2 ss
      +
      + + matolje +
      +
    • +
    • +
      400 g
      +
      + + hermetiske tomater + finhakkede
      +
    • +
    • +
      1 boks
      + +
    • +
    • +
      1 ss
      +
      + + honning +
      +
    • +
    • +
      1 ss
      + +
    • +
    • +
      65 g
      +
      + + spinat +
      +
    • +
    +
    +
    +
    + +
    +
    +

    Slik gjør du det

    +
    +
      +
    1. +
      1
      +
      +

      Skjær opp løken i tynne båter og kyllingen i biter på ca. 3x3 cm og ha over i en bolle.

      +
      +
    2. +
    3. +
      2
      +
      +

      Bland sammen gurkemeie, spisskummen, garam masala, malt koriander, chiliflak, pepper, salt, ingefær, hvitløk, sitron og olje og ha det over i bollen sammen med løk og kylling. Bland godt.

      +
      +
    4. +
    5. +
      3
      +
      +

      Varm opp en stor stekepanne på høy varme. Stek kyllingen til den har fått en fin og gyllen farge.

      +
      +
    6. +
    7. +
      4
      +
      +

      Ha i tomater, Crème Fraîche og honnig. Rør rundt til du har fått en jevn saus.

      +
      +
    8. +
    9. +
      5
      +
      +

      La det putre et par minutter og rør inn smør og spinat.

      +
      +
    10. +
    11. +
      6
      +
      +

      Server gjerne med kokt ris, salat eller naanbrød.

      +
      +
    12. +
    +
    +
    +
    +

    Tips

    + For en mer autentisk smak tilsett 2 ts bukkehornkløverfrø til kyllingmarinaden og 3 ss tørket bukkehornkløverblader i sausen. +
    +
    +
    +
    +

    Del denne oppskriften:

    + +
    + + + +
    +
    +
    +
    +
    + + + + + + diff --git a/tests/test_data/tine.no/tineno.json b/tests/test_data/tine.no/tineno_2.json similarity index 68% rename from tests/test_data/tine.no/tineno.json rename to tests/test_data/tine.no/tineno_2.json index 70e60c13b..5e14dbbb9 100644 --- a/tests/test_data/tine.no/tineno.json +++ b/tests/test_data/tine.no/tineno_2.json @@ -27,6 +27,43 @@ "0.5 ts salt", "0.25 ts pepper" ], + "ingredient_groups": [ + { + "ingredients": [ + "4 dl basmatiris" + ], + "purpose": "Ris:" + }, + { + "ingredients": [ + "400 g kyllingfileter", + "1 ss TINE® Meierismør til steking", + "1 stk paprika", + "0.5 dl chili", + "3 stk vårløk", + "1 ts hvitløksfedd", + "1 ss hakket, frisk ingefær", + "0.5 dl hakket, frisk koriander", + "2 ts garam masala", + "3 dl TINE® Lett Crème Fraîche 18 %", + "3 ss tomatpuré", + "0.5 ts salt", + "0.25 ts pepper" + ], + "purpose": "Tikka masala:" + }, + { + "ingredients": [ + "0.5 dl slangeagurk", + "3 dl TINE® Yoghurt Naturell", + "0.5 dl frisk mynte", + "1 ts hvitløksfedd", + "0.5 ts salt", + "0.25 ts pepper" + ], + "purpose": "Raita:" + } + ], "instructions_list": [ "Kok ris etter anvisningen på pakken.", "Tikka masala:", diff --git a/tests/test_data/tine.no/tineno.testhtml b/tests/test_data/tine.no/tineno_2.testhtml similarity index 100% rename from tests/test_data/tine.no/tineno.testhtml rename to tests/test_data/tine.no/tineno_2.testhtml From db6c82f24be5672f1389da53f4b3ccc9ecf0d176 Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:08:47 -0700 Subject: [PATCH 15/19] Ingredient grouping support for timesofindia (#1287) --- recipe_scrapers/timesofindia.py | 9 + ...{timesofindia.json => timesofindia_1.json} | 0 ...india.testhtml => timesofindia_1.testhtml} | 0 .../timesofindia_2.json | 74 + .../timesofindia_2.testhtml | 2124 +++++++++++++++++ 5 files changed, 2207 insertions(+) rename tests/test_data/recipes.timesofindia.com/{timesofindia.json => timesofindia_1.json} (100%) rename tests/test_data/recipes.timesofindia.com/{timesofindia.testhtml => timesofindia_1.testhtml} (100%) create mode 100644 tests/test_data/recipes.timesofindia.com/timesofindia_2.json create mode 100644 tests/test_data/recipes.timesofindia.com/timesofindia_2.testhtml diff --git a/recipe_scrapers/timesofindia.py b/recipe_scrapers/timesofindia.py index bda6d9c52..aca8e3cf1 100644 --- a/recipe_scrapers/timesofindia.py +++ b/recipe_scrapers/timesofindia.py @@ -1,5 +1,6 @@ from ._abstract import AbstractScraper from ._exceptions import ElementNotFoundInHtml, StaticValueException +from ._grouping_utils import group_ingredients from ._utils import normalize_string @@ -23,3 +24,11 @@ def language(self): meta_language = self.soup.find("meta", attrs={"http-equiv": "content-language"}) return normalize_string(meta_language.get("content")) + + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + ".specialingrs span", + "ul[data-convert] label.clearfix", + ) diff --git a/tests/test_data/recipes.timesofindia.com/timesofindia.json b/tests/test_data/recipes.timesofindia.com/timesofindia_1.json similarity index 100% rename from tests/test_data/recipes.timesofindia.com/timesofindia.json rename to tests/test_data/recipes.timesofindia.com/timesofindia_1.json diff --git a/tests/test_data/recipes.timesofindia.com/timesofindia.testhtml b/tests/test_data/recipes.timesofindia.com/timesofindia_1.testhtml similarity index 100% rename from tests/test_data/recipes.timesofindia.com/timesofindia.testhtml rename to tests/test_data/recipes.timesofindia.com/timesofindia_1.testhtml diff --git a/tests/test_data/recipes.timesofindia.com/timesofindia_2.json b/tests/test_data/recipes.timesofindia.com/timesofindia_2.json new file mode 100644 index 000000000..8441ebdeb --- /dev/null +++ b/tests/test_data/recipes.timesofindia.com/timesofindia_2.json @@ -0,0 +1,74 @@ +{ + "author": "TNN", + "canonical_url": "https://recipes.timesofindia.com/recipes/zen-avacado-toast/rs108671139.cms", + "site_name": "Times of India - Recipes", + "host": "recipes.timesofindia.com", + "language": "en", + "title": "Zen Avacado Toast Recipe", + "ingredients": [ + "1 slice baguette", + "1 tablespoon cream cheese", + "1 mashed avocados", + "1 tablespoon finely chopped onion", + "1 Pinch crushed black pepper", + "1 tablespoon finely chopped tomato", + "salt as required", + "1 teaspoon lemon juice", + "microgreens as required", + "1 tablespoon crushed cheese- feta", + "1 leaves basil" + ], + "ingredient_groups": [ + { + "ingredients": [ + "1 slice baguette", + "1 tablespoon cream cheese" + ], + "purpose": null + }, + { + "ingredients": [ + "1 mashed avocados", + "1 tablespoon finely chopped onion", + "1 Pinch crushed black pepper", + "1 tablespoon finely chopped tomato", + "salt as required", + "1 teaspoon lemon juice" + ], + "purpose": "For Dressing" + }, + { + "ingredients": [ + "microgreens as required", + "1 tablespoon crushed cheese- feta", + "1 leaves basil" + ], + "purpose": "For Garnishing" + } + ], + "instructions_list": [ + "Preheat the oven to 150°C. Place one side of the bread on a baking tray and toast it gently for 2 minutes.", + "Mash a whole avocado coarsely and add chopped tomatoes , onions, salt, black pepper, lemon juice and some chopped coriander leaves.", + "Place the toasted bread on a plate and put some cream cheese, and the avocado mash on top. Sprinkle some crumbled Feta on top, some mixed seeds and garnish it with microgreens. Add a few fresh basil leaves, and a dash of extra virgin olive oil and serve.", + "To increase the nutrition, you can also add a poached egg on top along with mixed seeds." + ], + "category": "Breakfast", + "yields": "1 serving", + "description": "Indian streets are witnessing a surge in popularity of new breakfast and snack ideas and one of the major hits of this time is 'Avocado Toast'. From Mumbai to Surat to Bhopal and Ahmedabad, street food stalls of these cities are witnessing a surge in demand for avocado toast. The reasons are numerous, being a healthy snack option, avocado provides various health benefits such as keeping you full for a long time, prevents heart disease, promotes healthy digestion, prevents diabetes complications, increases brain function and many more. This recipe of 'Avocado toast' made with sourdough bread, avocado mix and cream cheese is an ultimate destination, as it provides good fats, low carbs, high protein and high fiber and can be eaten as breakfast or snack. Explore the healthy recipe of 'Zen Avocado Toast' provided by Chef Rahul Desai of Blah!", + "total_time": 12, + "prep_time": 10, + "cuisine": "Continental", + "nutrients": { + "servingSize": "1 bowl", + "calories": "478 cal" + }, + "image": "https://static.toiimg.com/thumb/108671139.cms?width=1200&height=900", + "keywords": [ + "Zen Avacado Toast recipe", + "Continental", + "cook Zen Avacado Toast", + "Pot Luck", + "Kitty Party", + "Buffet" + ] +} diff --git a/tests/test_data/recipes.timesofindia.com/timesofindia_2.testhtml b/tests/test_data/recipes.timesofindia.com/timesofindia_2.testhtml new file mode 100644 index 000000000..ca2a7e70d --- /dev/null +++ b/tests/test_data/recipes.timesofindia.com/timesofindia_2.testhtml @@ -0,0 +1,2124 @@ + +Zen Avacado Toast Recipe: How to Make Zen Avacado Toast Recipe | Homemade Zen Avacado Toast Recipe
    closecomments
    + (Tap and add)
    • Nice recipe
    • Will try out
    • Worth trying
    • Wonderful recipe
    • That’s yummy
    • Looks delicious
    • I enjoyed this recipe
    • Helpful recipe
    Submit
    \ No newline at end of file From ec92b832d7f50989b9e4c9cbe2c13225e29edfff Mon Sep 17 00:00:00 2001 From: James Addison <55152140+jayaddison@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:41:23 +0000 Subject: [PATCH 16/19] usapears: implement redundant-nutrient-value filtering (#1294) --- recipe_scrapers/usapears.py | 28 + tests/test_data/usapears.org/usapears.json | 11 +- .../test_data/usapears.org/usapears.testhtml | 2002 ++++++++--------- 3 files changed, 1026 insertions(+), 1015 deletions(-) diff --git a/recipe_scrapers/usapears.py b/recipe_scrapers/usapears.py index ee97e1ee3..c47a16cdb 100644 --- a/recipe_scrapers/usapears.py +++ b/recipe_scrapers/usapears.py @@ -1,4 +1,7 @@ +import re + from ._abstract import AbstractScraper +from ._exceptions import ElementNotFoundInHtml from ._utils import get_minutes, normalize_string @@ -25,6 +28,31 @@ def ingredients(self): for paragraph in ingredient_elements ] + def nutrients(self): + container = self.soup.find("ul", {"itemprop": "nutrition"}) + if not container: + raise ElementNotFoundInHtml("Could not find nutritional info container") + + results = {} + redundant_pattern = r"(.+)[:] " + for item in container.find_all("li", {"itemprop": True}): + nutrient = item["itemprop"] + content = "".join(str(elem) for elem in item.children) + if re.match(redundant_pattern, content): + content = re.sub(redundant_pattern, "", content) + results[nutrient] = content + + corrections = { + "carbohydrates": "carbohydrateContent", + "protein": "proteinContent", + "fat": "fatContent", + } + for mistake, correction in corrections.items(): + if mistake in results: + results[correction] = results.pop(mistake) + + return results + def ratings(self): try: ratings = self.schema.ratings() diff --git a/tests/test_data/usapears.org/usapears.json b/tests/test_data/usapears.org/usapears.json index fb71e581c..de5e64c82 100644 --- a/tests/test_data/usapears.org/usapears.json +++ b/tests/test_data/usapears.org/usapears.json @@ -23,14 +23,11 @@ "yields": "6 servings", "description": "This simple, tasty pear recipe was created by Chef Jamie Lauren of Absinthe Brasserie and Bar in San Francisco and cookbook author Mollie Katzen. If you can’t find Bosc pears at your local grocery store, red or green Anjou pears also work well.", "total_time": 25, - "ratings": null, - "ratings_count": 4, "nutrients": { - "servingSize": "Serving Size: 1 Pear", - "calories": "Calories: 230", - "carbohydrateContent": "Carbohydrate: 34g", - "proteinContent": "Protein: 5g", - "fiberContent": "Dietary Fiber: 7g" + "servingSize": "1 Pear", + "calories": "230", + "carbohydrateContent": "34g", + "proteinContent": "5g" }, "image": "https://usapears.org/wp-content/uploads/2014/10/Sauteed-Bosc-Pears1.jpg" } diff --git a/tests/test_data/usapears.org/usapears.testhtml b/tests/test_data/usapears.org/usapears.testhtml index d83210b3a..657b2abb8 100644 --- a/tests/test_data/usapears.org/usapears.testhtml +++ b/tests/test_data/usapears.org/usapears.testhtml @@ -1,29 +1,29 @@ - - - - - - - - - - - - - Sauteed Bosc Pears - USA Pears - - - - - - - - - - - + + + + + + + + + + + + + Sauteed Bosc Pears - USA Pears + + + + + + + + + + + @@ -37,952 +37,937 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - - -
    - - -
    - - - - - - - - -
    - - -
    -
    - -
    - - - - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - Recipe Image -
    -
    - -
    - -
    - - - -
    -
    - -
    -

    Sauteed Bosc Pears

    -
    -
    - -
    -
    -
    10
    -
    Prep Time
    -
    - -
    -
    15
    -
    Cook Time
    -
    - -
    -
    6
    -
    Servings
    -
    -
    - - - -
    -
    -
    -
    - -
    - - - - -
    - -
    -
    - -
    - This simple, tasty pear recipe was created by Chef Jamie Lauren of Absinthe Brasserie and Bar in San Francisco and cookbook author Mollie Katzen. If you can’t find Bosc pears at your local grocery store, red or green Anjou pears also work well.
    - - - -
    - INGREDIENTS -
    - -
    - -
      -
    • 2 tablespoons butter
    • -
    • ¼ teaspoon cinnamon
    • -
    • ¼ teaspoon ground nutmeg
    • -
    • ¼ teaspoon ground allspice
    • -
    • 6 Bosc USA Pears, peeled, cored, and quartered
    • -
    • Juice of ½ lemon (about 3 tablespoons)
    • -
    • 1 ½ cup nonfat vanilla yogurt or frozen yogurt
    • -
    • ½ cup chopped, toasted California walnuts
    • -
    -
    - -
    - -
    - -
    - DIRECTIONS -
    - -
    -

    To prepare pears, melt butter in a large skillet over medium heat. Stir in spices and cook for 30 seconds or until aromatic. Add pears and cook for 15 minutes or until tender, stirring frequently. Stir in lemon juice.

    -

    Serve with nonfat vanilla yogurt or frozen yogurt and top with walnuts.

    -
    - - - - - - - -
    - NUTRITION -
    - -
      - -
    • Serving Size: 1 Pear
    • - -
    • Calories: 230
    • - - - -
    • Carbohydrate: 34g
    • - -
    • Dietary Fiber: 7g
    • - -
    • Protein: 5g
    • - - - -
    - - - - - - -
    - - -
    - - -
    -

    You May Also Like

    - - - - -
    -
    - - - -
    - - - -
    - - -
    -
    1 Comment » for Sauteed Bosc Pears
    - - -
      -
    1. -
      -
      - Brittany says:
      - - - -

      -

      This is one of my favorite winter desserts! These sauteed Bosc pears are so delicious in a bowl of chilled almond milk. I like to add a little dried ginger to my pears, too. So healthy and simple!

      - - -
      -
    2. -
    - - - - - -
    -

    Review This Recipe

    Your email address will not be published. Required fields are marked *

    *

    *

    - -
    - - - - -

    - -

    - - - - - - -
    - - - - - -
    - - - - -
    -
    - -
    - - - -
    - - - -
    - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + +
    + + +
    + + + + + + + + +
    + + +
    +
    + +
    + + + + + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + Recipe Image +
    +
    + +
    + +
    + + + +
    +
    + +
    +

    Sauteed Bosc Pears

    +
    +
    + +
    +
    +
    10
    +
    Prep Time
    +
    + +
    +
    15
    +
    Cook Time
    +
    + +
    +
    6
    +
    Servings
    +
    +
    + + + +
    +
    +
    +
    + +
    + + + + +
    + +
    +
    + +
    + This simple, tasty pear recipe was created by Chef Jamie Lauren of Absinthe Brasserie and Bar in San Francisco and cookbook author Mollie Katzen. If you can’t find Bosc pears at your local grocery store, red or green Anjou pears also work well.
    + + + +
    + INGREDIENTS +
    + +
    + +
      +
    • 2 tablespoons butter
    • +
    • ¼ teaspoon cinnamon
    • +
    • ¼ teaspoon ground nutmeg
    • +
    • ¼ teaspoon ground allspice
    • +
    • 6 Bosc USA Pears, peeled, cored, and quartered
    • +
    • Juice of ½ lemon (about 3 tablespoons)
    • +
    • 1 ½ cup nonfat vanilla yogurt or frozen yogurt
    • +
    • ½ cup chopped, toasted California walnuts
    • +
    +
    + + + +
    + DIRECTIONS +
    + +
    +

    To prepare pears, melt butter in a large skillet over medium heat. Stir in spices and cook for 30 seconds or until aromatic. Add pears and cook for 15 minutes or until tender, stirring frequently. Stir in lemon juice.

    +

    Serve with nonfat vanilla yogurt or frozen yogurt and top with walnuts.

    +
    + + + + + +
    NUTRITION
    • Serving Size: 1 Pear
    • Calories: 230
    • Carbohydrates: 34g
    • Protein: 5g
    + + + +
    + + +
    + + +
    +

    You May Also Like

    + + + + +
    +
    + + + +
    + + + +
    + + +
    +
    1 Comment » for Sauteed Bosc Pears
    + + +
      +
    1. +
      +
      + Brittany says:
      + + + +

      +

      This is one of my favorite winter desserts! These sauteed Bosc pears are so delicious in a bowl of chilled almond milk. I like to add a little dried ginger to my pears, too. So healthy and simple!

      + + +
      +
    2. +
    + + + + + +
    +

    Review This Recipe

    Your email address will not be published. Required fields are marked *

    *

    *

    + +
    + + + + +

    + +

    + + + + + + +
    + + + + + +
    + + + + +
    +
    + +
    + + + +
    + + + +
    + + + - - - - - - - - - - - - - - - - + e.appendChild(s);}()); + + + + + + + + + + + + + + + + + \ No newline at end of file From a648c1a87b3f7def581f9951c5fb61aec3cf9267 Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Thu, 17 Oct 2024 15:09:21 -0700 Subject: [PATCH 17/19] Ingredient grouping support for usapears (#1284) --- recipe_scrapers/usapears.py | 13 +- .../{usapears.json => usapears_1.json} | 0 ...{usapears.testhtml => usapears_1.testhtml} | 82 +- tests/test_data/usapears.org/usapears_2.json | 86 ++ .../usapears.org/usapears_2.testhtml | 1043 +++++++++++++++++ 5 files changed, 1182 insertions(+), 42 deletions(-) rename tests/test_data/usapears.org/{usapears.json => usapears_1.json} (100%) rename tests/test_data/usapears.org/{usapears.testhtml => usapears_1.testhtml} (99%) create mode 100644 tests/test_data/usapears.org/usapears_2.json create mode 100644 tests/test_data/usapears.org/usapears_2.testhtml diff --git a/recipe_scrapers/usapears.py b/recipe_scrapers/usapears.py index c47a16cdb..20264fcf5 100644 --- a/recipe_scrapers/usapears.py +++ b/recipe_scrapers/usapears.py @@ -2,6 +2,7 @@ from ._abstract import AbstractScraper from ._exceptions import ElementNotFoundInHtml +from ._grouping_utils import group_ingredients from ._utils import get_minutes, normalize_string @@ -21,13 +22,23 @@ def total_time(self): return total_time def ingredients(self): - ingredient_elements = self.soup.find_all("li", {"itemprop": "ingredients"}) + ingredient_elements = self.soup.select( + 'li[itemprop="ingredients"]:not(:has(strong))' + ) return [ normalize_string(paragraph.get_text().strip()) for paragraph in ingredient_elements ] + def ingredient_groups(self): + return group_ingredients( + self.ingredients(), + self.soup, + 'li[itemprop="ingredients"] strong', + 'li[itemprop="ingredients"]:not(:has(strong))', + ) + def nutrients(self): container = self.soup.find("ul", {"itemprop": "nutrition"}) if not container: diff --git a/tests/test_data/usapears.org/usapears.json b/tests/test_data/usapears.org/usapears_1.json similarity index 100% rename from tests/test_data/usapears.org/usapears.json rename to tests/test_data/usapears.org/usapears_1.json diff --git a/tests/test_data/usapears.org/usapears.testhtml b/tests/test_data/usapears.org/usapears_1.testhtml similarity index 99% rename from tests/test_data/usapears.org/usapears.testhtml rename to tests/test_data/usapears.org/usapears_1.testhtml index 657b2abb8..8cd518d78 100644 --- a/tests/test_data/usapears.org/usapears.testhtml +++ b/tests/test_data/usapears.org/usapears_1.testhtml @@ -23,20 +23,20 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -968,33 +968,33 @@ height="0" width="0" style="display:none;visibility:hidden"> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + +
    + + +
    + + + + + + + + +
    + + +
    +
    + +
    + + + + + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + Recipe Image +
    +
    + +
    + +
    + + + +
    +
    + +
    +

    Pulled Pork and Pear Tacos with Pear Pico de Gallo

    +
    +
    + +
    +
    +
    20
    +
    Prep Time
    +
    + +
    +
    10hr
    +
    Cook Time
    +
    + +
    +
    20
    +
    Servings
    +
    +
    + + + +
    +
    +
    +
    + +
    + + + + +
    + +
    +
    + +
    + Time for a taco party! In this festive recipe, pears appear in two ways: braised with pork shoulder to create depth and sweetness for a juicy, shredded taco filling, and also mixed into a zesty pear and jicama pico de gallo for topping. There will be plenty of the flavorful slow-cooked meat to feed a crowd, and any leftovers can be frozen for quick taco making for future weeknight dinners. Serve with margaritas and chips and salsa to round out the menu.
    + + + +
    + INGREDIENTS +
    + +
    + +
      +
    • Pulled Pork
    • +
    • 3 1/2 pounds pork shoulder (pork butt)
    • +
    • 1 tablespoon kosher salt
    • +
    • 1 tablespoon chile powder
    • +
    • 2 teaspoons ground cumin
    • +
    • 1/2 teaspoon freshly ground pepper
    • +
    • 1 tablespoon extra-virgin olive oil
    • +
    • 2 large ripe USA Pears, peeled and chopped
    • +
    • 1 small white onion, finely chopped
    • +
    • 1/4 cup chopped fresh cilantro leaves and stems
    • +
    • 4 canned chipotle chiles with a little extra sauce
    • +
    • 2 cloves garlic, minced
    • +
    • Juice of 1 lime
    • +
    • Pear Pico de Gallo
    • +
    • 1 1/2 cups finely diced USA Green Bartlett Pear
    • +
    • 1 cup finely diced jicama
    • +
    • 4 finely minced green onions
    • +
    • 1/4 cup minced cilantro
    • +
    • 2 minced jalapeños, or to taste
    • +
    • Juice of 1 lime
    • +
    • Kosher salt, to taste
    • +
    • Corn or flour tortillas, for serving
    • +
    • 1 avocado, sliced
    • +
    • Sour cream, for serving
    • +
    +
    + + + +
    + DIRECTIONS +
    + +
    +

    To make the pulled pork: Cut the pork into 4 large chunks and season them with salt, chile powder, cumin, and pepper, coating all sides. Put the pork in a slow cooker and add the pears, onion, cilantro, chipotle chiles, and garlic, and squeeze the lime juice over everything. Cover and cook on until the meat easily shreds, 8 to 10 hours on low, or 4 to 6 hours on high. (This can also be cooked in an Instant Pot at high pressure for 75 minutes, following manufacturer’s instructions.) Shred the meat using two forks right in the slow cooker, discarding any fatty pieces. Keep warm.

    +

    To make the pico de gallo: Mix all ingredients in a small bowl up to 2 hours before serving.

    +

    Serve the pulled pork in warmed tortillas, topped with avocado, sour cream, and the pico de gallo, as desired.

    +

    (Leftover meat will keep in the refrigerator for up to 4 days, or can be frozen for up to 6 months.)

    +

    Photography: George Barberis (@georgebarberis)
    +Recipe and Styling: Andrea Slonecker (@andreaslonecker)

    +
    + + + + + +
    NUTRITION
    • Serving Size: 1 Taco (178g)
    • Calories: 410
    • Carbohydrates: 27g
    • Protein: 23g
    + + + +
    + + +
    + + +
    +

    You May Also Like

    + +
    + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + +
    + + + +
    + + + + + + +
    +

    Review This Recipe

    Your email address will not be published. Required fields are marked *

    *

    *

    + +
    + + + + +

    + +

    + + + + + + +
    + + + + + +
    + + + + +
    +
    + +
    + + + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 097c601bcedaa871ba8f2d849b185fd584a0fd85 Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Thu, 17 Oct 2024 17:38:49 -0700 Subject: [PATCH 18/19] remove thexpertguides (#1306) --- README.rst | 1 - recipe_scrapers/__init__.py | 2 - recipe_scrapers/theexpertguides.py | 7 - .../theexpertguides.com/theexpertguides.json | 45 - .../theexpertguides.testhtml | 1127 ----------------- 5 files changed, 1182 deletions(-) delete mode 100644 recipe_scrapers/theexpertguides.py delete mode 100644 tests/test_data/theexpertguides.com/theexpertguides.json delete mode 100644 tests/test_data/theexpertguides.com/theexpertguides.testhtml diff --git a/README.rst b/README.rst index e01feeada..fb96d59cc 100644 --- a/README.rst +++ b/README.rst @@ -407,7 +407,6 @@ Scrapers available for: - `https://theclevercarrot.com/ `_ - `https://www.thecookierookie.com/ `_ - `https://thecookingguy.com/ `_ -- `https://theexpertguides.com/ `_ - `https://thefoodietakesflight.com/ `_ - `https://theglutenfreeaustrian.com/ `_ - `https://thehappyfoodie.co.uk/ `_ diff --git a/recipe_scrapers/__init__.py b/recipe_scrapers/__init__.py index 8f737caaa..da37e738c 100644 --- a/recipe_scrapers/__init__.py +++ b/recipe_scrapers/__init__.py @@ -356,7 +356,6 @@ from .theclevercarrot import TheCleverCarrot from .thecookierookie import TheCookieRookie from .thecookingguy import TheCookingGuy -from .theexpertguides import TheExpertGuides from .thefoodietakesflight import TheFoodieTakesFlight from .theglutenfreeaustrian import TheGlutenFreeAustrian from .thehappyfoodie import TheHappyFoodie @@ -760,7 +759,6 @@ Tasty.host(): Tasty, TastyKitchen.host(): TastyKitchen, TheCleverCarrot.host(): TheCleverCarrot, - TheExpertGuides.host(): TheExpertGuides, TheHappyFoodie.host(): TheHappyFoodie, TheKitchenCommunity.host(): TheKitchenCommunity, TheKitchenMagPie.host(): TheKitchenMagPie, diff --git a/recipe_scrapers/theexpertguides.py b/recipe_scrapers/theexpertguides.py deleted file mode 100644 index b506dfa9c..000000000 --- a/recipe_scrapers/theexpertguides.py +++ /dev/null @@ -1,7 +0,0 @@ -from ._abstract import AbstractScraper - - -class TheExpertGuides(AbstractScraper): - @classmethod - def host(cls): - return "theexpertguides.com" diff --git a/tests/test_data/theexpertguides.com/theexpertguides.json b/tests/test_data/theexpertguides.com/theexpertguides.json deleted file mode 100644 index 7a2c02f8f..000000000 --- a/tests/test_data/theexpertguides.com/theexpertguides.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "author": "Anne Maxwell", - "canonical_url": "https://theexpertguides.com/nz/coconut-milk-pasta-sauce-in-new-zealand/", - "site_name": "theexpertguides", - "host": "theexpertguides.com", - "language": "en-US", - "title": "Coconut Milk Pasta Sauce Recipe", - "ingredients": [ - "1 lb pasta of your choice", - "4-5 garlic cloves (minced )", - "1 can chopped tomatoes", - "1 can coconut milk", - "1/2 cup vegetable stock", - "Fresh basil and oregano", - "2 tbsp olive oil" - ], - "instructions_list": [ - "In a large pan bring water to a boil. When it starts boiling, add a generous amount of salt (2 tbsp) and cook the pasta according to the instructions on the package.", - "When cooked, drain the pasta and keep it aside.", - "Take a saucepan to make the coconut milk pasta sauce.", - "In the saucepan, heat olive oil and add minced garlic. Stire for 30 seconds and make sure it doesn't burn.", - "Add chopped tomatoes and stir for 2-3 minutes.", - "Pour in the vegetable broth and coconut milk.", - "Bring the sauce to a boil and cook for 10 minutes on medium heat without the lid. Cook the sauce until its creamy and thickened.", - "Add chopped basil and dried oregano with salt and pepper to taste.", - "Combine the cooked pasta in the sauce, and serve hot." - ], - "category": "Main Course", - "yields": "4 servings", - "description": "Coconut milk pasta sauce is a super easy vegan pasta recipe that's creamy, flavourful, and just the perfect sauce for pasta ready in 15 minutes.", - "total_time": 28, - "cook_time": 15, - "prep_time": 15, - "cuisine": "Italian", - "nutrients": { - "servingSize": "1 serving", - "calories": "638 kcal" - }, - "image": "https://theexpertguides.com/wp-content/uploads/2022/08/pexels-photo-1487511-1.webp", - "keywords": [ - "coconut milk pasta", - "vegan coconut milk pasta sauce recipe", - "vegan pasta sauce" - ] -} diff --git a/tests/test_data/theexpertguides.com/theexpertguides.testhtml b/tests/test_data/theexpertguides.com/theexpertguides.testhtml deleted file mode 100644 index daa0d10a0..000000000 --- a/tests/test_data/theexpertguides.com/theexpertguides.testhtml +++ /dev/null @@ -1,1127 +0,0 @@ - - - - - - - - - Coconut Milk Pasta Sauce Recipe in New Zealand - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -html - - - - - - - - -
    - - - -
    -
    -
    -
    -
    -
    -
    - coconut-milk-pasta-sauce
    -
    -
    -
    -
    -
    - - -
    -

    How to Make Coconut Milk Pasta Sauce in New Zealand

    -
    - -
    - -

    Coconut milk pasta sauce is super easy to make and a vegan, healthy recipe for pasta lovers, and it’s ready in just 15 minutes. This recipe is creamy, flavorful, and a perfect sauce for pasta, grilled vegetables, and chicken. It is very popular in New Zealand.

    - - - -

    It’s a simple recipe that’s ready in very little time and does not require any special ingredients. You can easily make it with the ingredients available in local New Zealand markets.

    - - - -

    Pasta is the best comfort food around, and I love saucy, creamy pasta. I personally don’t follow a vegan lifestyle, but my friends who do, feel like there isn’t much you can do when it comes to making vegan pasta.

    - - - -

    But that is completely wrong! With simple ingredients like coconut milk, you can make an amazing curry or sauce for your pasta. You can even use it to make vegan mac and cheese, or soups.

    - - - -

    For this dish, I have used the full-fat version of the coconut milk as it is creamier and has more flavor. You can also use the light version but for that, you will have to cook the sauce for longer to achieve the thickness. Both versions are easily available in New Zealand.

    - - - -

    If you don’t wish to keep the dish vegan, you can add Parmesan or cheddar cheese for a creamy thick pasta sauce. For a more filling dish, you can even add grilled chicken pieces or bacon. It’s definitely not vegetarian, but it’s very delicious.

    - - -
    -
    coconut milk pasta sauce recipes
    - - -

    With a few ingredients like coconut milk, garlic, basil, tomatoes, and olive oil, you have the perfect comfort food ready in minutes.

    - - - -

    You can serve pasta with garlic bread, or a light salad. I like it and serve it with roasted Brussels sprouts, broccoli, and a side of mashed potatoes. If you want more flavor, you can also opt for roasted or grilled vegetables like zucchini, smoked poblano peppers, onions, and carrots.

    - - - -

    Key Ingredients

    - - - -
      -
    • 1 lb pasta of your choice
    • - - - -
    • 4-5 garlic cloves, minced
    • - - - -
    • 1 can of chopped tomatoes
    • - - - -
    • 1 can of coconut milk
    • - - - -
    • 1/2 cup vegetable stock
    • - - - -
    • Fresh basil and oregano
    • - - - -
    • 2 tbsp olive oil
    • -
    - - - -

    Variations

    - - - -
      -
    • If you don’t have fresh tomatoes, you can use store-bought tomato puree or tomato paste.
    • - - - -
    • If you don’t want vegan pasta, feel free to add chopped bacon.
    • - - - -
    • You can skip the tomatoes, and just make a simple white pasta sauce with tofu cheese or any other vegan cheese option.
    • - - - -
    • If you want the pasta to be more filling, add broccoli and mushrooms with garlic and stir fry before adding tomatoes.
    • -
    - - - -

    Chef Notes

    - - - -
      -
    1. You can use any pasta you have for this recipe. I have used penne pasta. It also works with whole wheat or spelt pasta.
    2. - - - -
    3. If you don’t have fresh basil, you can use dried oregano, or Italian seasoning to bring out the flavor of coconut milk.
    4. - - - -
    5. If your sauce is thin, there are different ways to thicken the sauce. You can use a roux or cornstarch to achieve your desired consistency.
    6. - - - -
    7. Be careful with salt in the sauce as your pasta will be salty as well, so you can start by adding a little, and check to make it to your taste.
    8. - - - -
    9. You can store the leftover coconut milk sauce in the refrigerator for 3-5 days. Make sure it’s stored in an airtight container.
    10. -
    - - -
    -
    coconut-milk-sauce
    - - -

    How do you make coconut milk sauce thicker?

    - - - -

    You can coconut milk sauce either by simmering the sauce on medium heat for more time. This will ensure that the sauce retains its flavor.

    - - - -

    You can also add a cornstarch slurry as a thickening agent, but it will affect the flavor of the sauce, and you might need to increase the seasoning.

    - - - -

    However, if you’re short on time, just make a slurry by mixing cornstarch into a few tablespoons of water and adding it to the mixture. You can also check out my separate blog on ways to thicken the sauce for more options.

    - - - -

    Does Coconut Milk Curdle When Cooking?

    - - - -

    Yes, if you cook coconut milk too long at high temperatures, it will start to curdle. This is why when you are making this recipe, it’s recommended to cook the sauce at medium flame so it stays in its natural consistency.

    - - - -

    Also, make sure to stir constantly while cooking. As a rule of thumb, you can simmer coconut milk for 30-40 minutes.

    - - -
    -
    coconut-milk-pasta-sauce
    -
    -

    Coconut Milk Pasta Sauce Recipe

    -
    - -
    -
    Coconut milk pasta sauce is a super easy vegan pasta recipe that's creamy, flavourful, and just the perfect sauce for pasta ready in 15 minutes.
    -
    - -
    - -
    -
    -
    Prep Time 15 minutes
    Cook Time 15 minutes
    Total Time 28 minutes
    -
    -
    -
    -
    -
    Course Main Course
    Cuisine Italian
    -
    -
    -
    -
    Servings 4
    Calories 638 kcal
    -
    -
    - -

    Ingredients
      

    • 1 lb pasta of your choice
    • 4-5 garlic cloves minced
    • 1 can chopped tomatoes
    • 1 can coconut milk
    • 1/2 cup vegetable stock
    • Fresh basil and oregano
    • 2 tbsp olive oil
    -

    Instructions
     

    • In a large pan bring water to a boil. When it starts boiling, add a generous amount of salt (2 tbsp) and cook the pasta according to the instructions on the package.
    • When cooked, drain the pasta and keep it aside.
    • Take a saucepan to make the coconut milk pasta sauce.
    • In the saucepan, heat olive oil and add minced garlic. Stire for 30 seconds and make sure it doesn't burn.
    • Add chopped tomatoes and stir for 2-3 minutes.
    • Pour in the vegetable broth and coconut milk.
    • Bring the sauce to a boil and cook for 10 minutes on medium heat without the lid. Cook the sauce until its creamy and thickened.
    • Add chopped basil and dried oregano with salt and pepper to taste.
    • Combine the cooked pasta in the sauce, and serve hot.
    - -

    Notes

      -
    • Feel free to top the pasta with some vegan parmesan cheese. 
    • -
    • You can use any pasta you have for this recipe. I have used penne pasta. It also works with whole wheat or spelt pasta.
    • -
    • If you don’t have fresh basil, you can use dried oregano, or Italian seasoning to bring out the flavor of coconut milk.
    • -
    • If your sauce is thin, there are different ways to thicken the sauce. You can use a roux or cornstarch to achieve your desired consistency.
    • -
    • For a full gluten-free dish, use gluten-free pasta. 
    • -
    - -
    -
    -
    Keyword coconut milk pasta, vegan coconut milk pasta sauce recipe, vegan pasta sauce
    -
    -
    - - -

    Nutrition Facts

    - - - -

    Serving: 1

    - - - -
    Calories: 638kcalCarbohydrates: 80g
    Protein: 16gFat: 29g
    Sugar: 4gSodium: 109g
    - - - -

    Conclusion

    - - - -

    Making a coconut milk pasta sauce is a delicious and dairy-free alternative to traditional creamy pasta sauces. This creamy and flavorful coconut milk pasta sauce recipe is not only delicious but also versatile.

    - - - -

    You can customize it by adding your favorite vegetables, protein (such as shrimp, chicken, or tofu), or extra spices to suit your taste preferences. What’s best is that all the ingredients used in this recipe are easily available in New Zealand.

    -
    -
    -
    -
    -
    - - -
    -
    -
    -

    Similar Posts

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    - -
    - Recipe Rating -




    -
    -
    -

    - -

    - -

    - -

    -
    -
    -
    -
    -
    -
    -
    - -
    - -
    - - - - - - - - - - - - - - - - - - - From bc8cb723a2086f0a968410c7b2d4e5ed2c546607 Mon Sep 17 00:00:00 2001 From: Joey <7505194+jknndy@users.noreply.github.com> Date: Fri, 18 Oct 2024 11:56:59 -0700 Subject: [PATCH 19/19] modernproper: removes nutrient titles from output (#1304) Co-authored-by: James Addison <55152140+jayaddison@users.noreply.github.com> --- recipe_scrapers/themodernproper.py | 28 +++++++++++++++++++ .../themodernproper.com/themodernproper.json | 18 ++++++------ 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/recipe_scrapers/themodernproper.py b/recipe_scrapers/themodernproper.py index f408706cf..bda580a96 100644 --- a/recipe_scrapers/themodernproper.py +++ b/recipe_scrapers/themodernproper.py @@ -1,7 +1,35 @@ from ._abstract import AbstractScraper +from ._exceptions import ElementNotFoundInHtml class TheModernProper(AbstractScraper): @classmethod def host(cls): return "themodernproper.com" + + def nutrients(self): + container = self.schema.nutrients() + if not container: + raise ElementNotFoundInHtml("Could not find nutritional info container") + + results = {} + nutrient_mapping = { + "calories": "calories", + "fatContent": "fat", + "saturatedFatContent": "saturated fat", + "carbohydrateContent": "carbohydrates", + "sugarContent": "sugar", + "proteinContent": "protein", + "sodiumContent": "sodium", + "fiberContent": "fiber", + "cholesterolContent": "cholesterol", + } + + for key, value in container.items(): + if key not in nutrient_mapping: + continue + redundant_suffix = nutrient_mapping[key] + if value.endswith(redundant_suffix): + results[key] = value.removesuffix(redundant_suffix).strip() + + return results diff --git a/tests/test_data/themodernproper.com/themodernproper.json b/tests/test_data/themodernproper.com/themodernproper.json index 0c4c05273..2464c1b70 100644 --- a/tests/test_data/themodernproper.com/themodernproper.json +++ b/tests/test_data/themodernproper.com/themodernproper.json @@ -53,15 +53,15 @@ "ratings": 5.0, "ratings_count": 82, "nutrients": { - "calories": "463 calories", - "fatContent": "35 grams fat", - "saturatedFatContent": "15 grams saturated fat", - "carbohydrateContent": "11 grams carbohydrates", - "sugarContent": "1 grams sugar", - "proteinContent": "27 grams protein", - "sodiumContent": "1050 milligrams sodium", - "fiberContent": "1 grams fiber", - "cholesterolContent": "157 milligrams cholesterol" + "calories": "463", + "fatContent": "35 grams", + "saturatedFatContent": "15 grams", + "carbohydrateContent": "11 grams", + "sugarContent": "1 grams", + "proteinContent": "27 grams", + "sodiumContent": "1050 milligrams", + "fiberContent": "1 grams", + "cholesterolContent": "157 milligrams" }, "image": "https://images.themodernproper.com/billowy-turkey/production/posts/2018/swedish-meatballs-13.jpg?w=960&h=540&q=82&fm=jpg&fit=crop&dm=1599768329&s=a12d3adcc54b1d30b5aa25dc6b922e3f", "keywords": [