recipe-scrapers


Namerecipe-scrapers JSON
Version 15.3.3 PyPI version JSON
download
home_pageNone
SummaryPython package, scraping recipes from all over the internet
upload_time2024-12-14 20:19:32
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT License
keywords python recipes scraper harvest recipe-scraper recipe-scrapers
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: https://img.shields.io/github/stars/hhursev/recipe-scrapers?style=social
    :target: https://github.com/hhursev/recipe-scrapers/
    :alt: Github
.. image:: https://img.shields.io/pypi/v/recipe-scrapers.svg?
    :target: https://pypi.org/project/recipe-scrapers/
    :alt: Version
.. image:: https://img.shields.io/pypi/pyversions/recipe-scrapers
    :target: https://pypi.org/project/recipe-scrapers/
    :alt: PyPI - Python Version
.. image:: https://pepy.tech/badge/recipe-scrapers
    :target: https://pepy.tech/project/recipe-scrapers
    :alt: Downloads
.. image:: https://github.com/hhursev/recipe-scrapers/workflows/unittests/badge.svg?branch=main
    :target: https://github.com/hhursev/recipe-scrapers/actions/
    :alt: GitHub Actions Unittests
.. image:: https://coveralls.io/repos/hhursev/recipe-scraper/badge.svg?branch=main&service=github
    :target: https://coveralls.io/github/hhursev/recipe-scraper?branch=main
    :alt: Coveralls
.. image:: https://img.shields.io/github/license/hhursev/recipe-scrapers?
    :target: https://github.com/hhursev/recipe-scrapers/blob/main/LICENSE
    :alt: License


------


A simple scraping tool for recipe webpages.


Netiquette
----------

If you're using this library to collect large numbers of recipes from the web, please use the software responsibly and try to avoid creating high volumes of network traffic.

Python's standard library provides a ``robots.txt`` `parser <https://docs.python.org/3/library/urllib.robotparser.html>`_ that may be helpful to automatically follow common instructions specified by websites for web crawlers.


Getting Started
---------------

Start by using `Python's built-in package installer <https://docs.python.org/3/installing/index.html>`_, ``pip``, to install the library:

.. code:: shell

    python -m pip install recipe-scrapers

This should produce output about the installation process, with the final line reading: ``Successfully installed recipe-scrapers-<version-number>``.

To learn what the library can do, you can open a `Python interpreter session <https://docs.python.org/3/tutorial/interpreter.html>`_, and then begin typing -- and/or modifying -- the statements below:

.. code:: python

    from urllib.request import urlopen

    from recipe_scrapers import scrape_html

    url = "https://www.allrecipes.com/recipe/158968/spinach-and-feta-turkey-burgers/"
    html = urlopen(url).read().decode("utf-8")  # retrieves the recipe webpage HTML
    scraper = scrape_html(html, org_url=url)
    scraper.title()
    scraper.instructions()  # etc.
    # for a complete list of methods:
    # help(scraper)

Some Python HTTP clients that you can use to retrieve HTML include `requests`_, `httpx`_, and the `urllib.request module`_ included in Python's standard library.  Please refer to their documentation to find out what options (timeout configuration, proxy support, etc) are available.

.. _requests: https://pypi.org/project/requests/

.. _httpx: https://pypi.org/project/httpx/

.. _urllib.request module: https://docs.python.org/3/library/urllib.request.html


Scrapers available for:
-----------------------

- `https://101cookbooks.com/ <https://101cookbooks.com/>`_
- `https://15gram.be <https://15gram.be>`_
- `https://40aprons.com/ <https://40aprons.com/>`_
- `https://www.750g.com <https://www.750g.com>`_
- `https://abeautifulmess.com/ <https://abeautifulmess.com/>`_
- `https://aberlehome.com/ <https://aberlehome.com>`_
- `https://abuelascounter.com/ <https://abuelascounter.com>`_
- `https://www.acouplecooks.com <https://acouplecooks.com/>`_
- `https://addapinch.com/ <https://addapinch.com/>`_
- `http://www.afghankitchenrecipes.com/ <http://www.afghankitchenrecipes.com/>`_
- `https://aflavorjournal.com/ <https://aflavorjournal.com/>`_
- `https://ah.nl/ <https://ah.nl/>`_
- `https://www.ahealthysliceoflife.com/ <https://www.ahealthysliceoflife.com/>`_
- `https://akispetretzikis.com/ <https://akispetretzikis.com/>`_
- `https://aldi-nord.de/ <https://aldi-nord.de/>`_
    - `.es <https://aldi.es/>`__, `.fr <https://aldi.fr/>`__, `.lu <https://aldi.lu/>`__, `.nl <https://aldi.nl/>`__, `.pl <https://aldi.pl/>`__, `.pt <https://aldi.pt/>`__
- `https://aldi-sued.de/ <https://aldi-sued.de/>`_
    - `.hu <https://aldi.hu/>`__, `.it <https://aldi.it/>`__
- `https://aldi-suisse.ch <https://aldi-suisse.ch/>`_
- `https://aldi.com.au/ <https://aldi.com.au/>`_
- `https://alexandracooks.com/ <https://alexandracooks.com/>`_
- `https://alittlebityummy.com/ <https://alittlebityummy.com/>`_
- `https://allrecipes.com/ <https://allrecipes.com/>`_
- `https://allthehealthythings.com/ <https://allthehealthythings.com/>`_
- `https://alltommat.se/ <https://alltommat.se/>`_
- `https://altonbrown.com/ <https://altonbrown.com/>`_
- `https://amazingribs.com/ <https://amazingribs.com/>`_
- `https://ambitiouskitchen.com/ <https://ambitiouskitchen.com>`_
- `https://ameessavorydish.com/ <https://ameessavorydish.com/>`_
- `https://americastestkitchen.com/ <https://www.americastestkitchen.com>`_ (*)
- `https://archanaskitchen.com/ <https://archanaskitchen.com/>`_
- `https://www.argiro.gr/ <https://www.argiro.gr/>`_
- `https://www.arla.se/ <https://www.arla.se/>`_
- `https://www.atelierdeschefs.fr/ <https://www.atelierdeschefs.fr/>`_
- `https://averiecooks.com/ <https://www.averiecooks.com/>`_
- `https://www.bakels.com.au/ <https://www.bakels.com.au/>`_
    - `.co.uk <https://bakels.co.uk/>`_
- `https://baking-sense.com/ <https://baking-sense.com/>`_
- `https://bakingmischief.com/ <https://bakingmischief.com/>`_
- `https://barefeetinthekitchen.com/ <https://barefeetinthekitchen.com/>`_
- `https://barefootcontessa.com/ <https://barefootcontessa.com>`_
- `https://barefootinthepines.com/ <https://barefootinthepines.com/>`_
- `https://bbc.com/ <https://bbc.com/food/recipes>`_
    - `.co.uk <https://bbc.co.uk/food/recipes>`__
- `https://bbcgoodfood.com/ <https://bbcgoodfood.com>`_
- `https://bestrecipes.com.au/ <https://bestrecipes.com.au>`_
- `https://betterfoodguru.com/ <https://betterfoodguru.com/>`_
- `https://bettybossi.ch/ <https://bettybossi.ch>`_
- `https://bettycrocker.com/ <https://bettycrocker.com>`_
- `https://beyondfrosting.com/ <https://beyondfrosting.com/>`_
- `https://biancazapatka.com/ <https://biancazapatka.com>`_
- `https://bigoven.com/ <https://bigoven.com>`_
- `https://bitsofcarey.com/ <https://bitsofcarey.com/>`_
- `https://blueapron.com/ <https://blueapron.com>`_
- `https://bluejeanchef.com/ <https://bluejeanchef.com/>`_
- `https://www.bodybuilding.com/ <https://www.bodybuilding.com/>`_
- `https://bonappetit.com/ <https://bonappetit.com>`_
- `https://bongeats.com/ <https://bongeats.com/>`_
- `https://books.ottolenghi.co.uk <https://books.ottolenghi.co.uk/>`_ (*)
- `https://bowlofdelicious.com/ <https://bowlofdelicious.com/>`_
- `https://breadtopia.com/ <https://breadtopia.com/>`_
- `https://briceletbaklava.ch/ <https://briceletbaklava.ch/>`_
- `https://brokenovenbaking.com/ <https://brokenovenbaking.com/>`_
- `https://budgetbytes.com/ <https://budgetbytes.com>`_
- `https://cafedelites.com/ <https://cafedelites.com/>`_
- `https://cakemehometonight.com/ <https://cakemehometonight.com/>`_
- `https://cambreabakes.com/ <https://cambreabakes.com/>`_
- `https://carlsbadcravings.com/ <https://carlsbadcravings.com/>`_
- `https://castironketo.net/ <https://castironketo.net/>`_
- `https://cdkitchen.com/ <https://cdkitchen.com/>`_
- `https://celebratingsweets.com/ <https://celebratingsweets.com/>`_
- `https://chefjeanpierre.com/ <https://chefjeanpierre.com/>`_
- `https://chefkoch.de/ <https://chefkoch.de>`_
- `https://www.chefnini.com/ <https://www.chefnini.com/>`_
- `https://chefsavvy.com/ <https://chefsavvy.com/>`_
- `https://claudia.abril.com.br/ <https://claudia.abril.com.br>`_
- `https://closetcooking.com/ <https://closetcooking.com>`_
- `https://colleenchristensennutrition.com/ <https://colleenchristensennutrition.com/>`_
- `https://comidinhasdochef.com/ <https://comidinhasdochef.com/>`_
- `https://cook-talk.com/ <https://cook-talk.com/>`_
- `https://cookeatshare.com/ <https://cookeatshare.com/>`_
- `https://cookieandkate.com/ <https://cookieandkate.com/>`_
- `https://cookiesandcups.com/ <https://cookiesandcups.com/>`_
- `https://cooking.nytimes.com/ <https://cooking.nytimes.com>`_
- `https://cookingcircle.com/ <https://cookingcircle.com/>`_
- `https://cookinglight.com/ <https://cookinglight.com/>`_
- `https://cookomix.com/ <https://cookomix.com/>`_
- `https://cookpad.com/ <https://cookpad.com/>`_
- `https://cookscountry.com/ <https://www.cookscountry.com>`_ (*)
- `https://cooksillustrated.com/ <https://www.cooksillustrated.com>`_ (*)
- `https://cookwell.com/ <https://cookwell.com/>`_
- `https://copykat.com/ <https://copykat.com>`_
- `https://www.costco.com/ <https://www.costco.com>`_
- `https://countryliving.com/ <https://countryliving.com>`_
- `https://creativecanning.com/ <https://creativecanning.com>`_
- `https://cucchiaio.it/ <https://cucchiaio.it>`_
- `https://cuisineaz.com/ <https://cuisineaz.com>`_
- `https://cybercook.com.br/ <https://cybercook.com.br/>`_
- `https://damndelicious.net/ <https://damndelicious.net/>`_
- `https://www.davidlebovitz.com/ <https://www.davidlebovitz.com/>`_
- `https://delish.com/ <https://delish.com>`_
- `https://dinneratthezoo.com/ <https://dinneratthezoo.com>`_
- `https://dinnerthendessert.com/ <https://dinnerthendessert.com/>`_
- `https://dish.co.nz/ <https://dish.co.nz>`_
- `https://dobruchut.aktuality.sk/ <https://dobruchut.aktuality.sk>`_
- `https://domesticate-me.com/ <https://domesticate-me.com/>`_
- `https://donalskehan.com/ <https://donalskehan.com/>`_
- `https://downshiftology.com/ <https://downshiftology.com/>`_
- `https://www.dr.dk/ <https://www.dr.dk/>`_
- `https://www.eatingbirdfood.com/ <https://www.eatingbirdfood.com>`_
- `https://www.eatingwell.com/ <https://www.eatingwell.com>`_
- `https://www.eatliverun.com/ <https://www.eatliverun.com/>`_
- `https://eatsmarter.com/ <https://eatsmarter.com/>`_
    - `.de <https://eatsmarter.de/>`__
- `https://eatthismuch.com/ <https://eatthismuch.com/>`_
- `https://eattolerant.de/ <https://eattolerant.de/>`_
- `https://www.eatwell101.com <https://www.eatwell101.com>`_
- `https://eatwhattonight.com/ <https://eatwhattonight.com/>`_
- `https://eggs.ca/ <https://eggs.ca/>`_
- `https://elavegan.com/ <https://elavegan.com/>`_
- `https://emmikochteinfach.de/ <https://emmikochteinfach.de/>`_
- `https://en.wikibooks.org/ <https://en.wikibooks.org>`_
- `https://epicurious.com/ <https://epicurious.com>`_
- `https://www.errenskitchen.com/ <https://www.errenskitchen.com/>`_
- `https://ethanchlebowski.com/ <https://ethanchlebowski.com>`_
- `https://www.evolvingtable.com/ <https://www.evolvingtable.com/>`_
- `https://www.familyfoodonthetable.com/ <https://www.familyfoodonthetable.com/>`_
- `https://www.farmhouseonboone.com/ <https://www.farmhouseonboone.com/>`_
- `https://www.fattoincasadabenedetta.it/ <https://www.fattoincasadabenedetta.it/>`_
- `https://felix.kitchen <https://felix.kitchen>`_
- `https://fifteenspatulas.com/ <https://www.fifteenspatulas.com/>`_
- `https://finedininglovers.com/ <https://www.finedininglovers.com>`_
- `https://fitmencook.com/ <https://www.fitmencook.com>`_
- `https://fitslowcookerqueen.com <https://fitslowcookerqueen.com/>`_
- `https://food.com/ <https://www.food.com>`_
- `https://food52.com/ <https://www.food52.com>`_
- `https://foodandwine.com/ <https://www.foodandwine.com>`_
- `https://foodfidelity.com/ <https://foodfidelity.com>`_
- `https://foodnetwork.co.uk/ <https://www.foodnetwork.co.uk>`_
    - `.com <https://www.foodnetwork.com>`__
- `https://foodrepublic.com/ <https://foodrepublic.com>`_
- `https://www.forksoverknives.com/ <https://www.forksoverknives.com/>`_
- `https://forktospoon.com/ <https://forktospoon.com/>`_
- `https://franzoesischkochen.de/ <https://franzoesischkochen.de/>`_
- `https://www.gesund-aktiv.com/ <https://www.gesund-aktiv.com>`_
- `https://gimmesomeoven.com/ <https://www.gimmesomeoven.com/>`_
- `https://glutenfreeonashoestring.com/ <https://glutenfreeonashoestring.com/>`_
- `https://godt.no/ <https://godt.no/>`_
- `https://gonnawantseconds.com/ <https://gonnawantseconds.com>`_
- `https://goodfooddiscoveries.com/ <https://goodfooddiscoveries.com/>`_
- `https://goodhousekeeping.com/ <https://www.goodhousekeeping.com/>`_
- `https://gourmettraveller.com.au/ <https://gourmettraveller.com.au>`_
- `https://www.grandfrais.com/ <https://www.grandfrais.com>`_
- `https://greatbritishchefs.com/ <https://greatbritishchefs.com>`_
- `https://grimgrains.com/ <https://grimgrains.com>`_
- `http://www.grouprecipes.com/ <http://www.grouprecipes.com/>`_
- `https://halfbakedharvest.com/ <https://www.halfbakedharvest.com/>`_
- `https://handletheheat.com/ <https://handletheheat.com/>`_
- `https://www.hassanchef.com/ <https://www.hassanchef.com/>`_
- `https://headbangerskitchen.com/ <https://www.headbangerskitchen.com/>`_
- `https://healthyeating.nhlbi.nih.gov/ <https://healthyeating.nhlbi.nih.gov>`_
- `https://heatherchristo.com/ <https://heatherchristo.com/>`_
- `https://www.heb.com/ <https://www.heb.com/recipe/landing>`_
- `https://hellofresh.com/ <https://hellofresh.com>`_
    - `.at <https://www.hellofresh.at/>`__, `.be <https://www.hellofresh.be/>`__, `.ca <https://www.hellofresh.ca/>`__, `.ch <https://www.hellofresh.ch/>`__, `.co.nz <https://www.hellofresh.co.nz/>`__, `.co.uk <https://hellofresh.co.uk>`__, `.com.au <https://www.hellofresh.com.au/>`__, `.de <https://www.hellofresh.de/>`__, `.dk <https://www.hellofresh.dk/>`__, `.es <https://www.hellofresh.es/>`__, `.fr <https://www.hellofresh.fr/>`__, `.ie <https://www.hellofresh.ie/>`__, `.it <https://www.hellofresh.it/>`__, `.lu <https://www.hellofresh.lu/>`__, `.nl <https://www.hellofresh.nl/>`__, `.no <https://www.hellofresh.no/>`__, `.se <https://www.hellofresh.se/>`__
- `https://www.hersheyland.com/ <https://www.hersheyland.com/>`_
- `https://hofer.at/ <https://hofer.at/>`_
    - `.si <https://hofer.si/>`__
- `https://www.homechef.com/ <https://www.homechef.com/>`_
- `https://hostthetoast.com/ <https://hostthetoast.com/>`_
- `https://hungryhappens.net/ <https://hungryhappens.net/>`_
- `https://www.ica.se/ <https://www.ica.se/>`_
- `https://www.im-worthy.com/ <https://www.im-worthy.com>`_
- `https://inbloombakery.com/ <https://inbloombakery.com/>`_
- `https://indianhealthyrecipes.com <https://www.indianhealthyrecipes.com>`_
- `https://ingoodflavor.com <https://www.ingoodflavor.com>`_
- `https://www.innit.com/ <https://www.innit.com/>`_
- `https://insanelygoodrecipes.com <https://insanelygoodrecipes.com/>`_
- `https://inspiralized.com/ <https://inspiralized.com>`_
- `https://inspiredtaste.net/ <https://inspiredtaste.net/>`_
- `https://irishcentral.com/ <https://irishcentral.com>`_
- `https://izzycooking.com/ <https://izzycooking.com/>`_
- `https://jamieoliver.com/ <https://jamieoliver.com>`_
- `https://jimcooksfoodgood.com/ <https://jimcooksfoodgood.com/>`_
- `https://www.jocooks.com/ <https://www.jocooks.com>`_
- `https://joshuaweissman.com/ <https://joshuaweissman.com/>`_
- `https://joyfoodsunshine.com/ <https://joyfoodsunshine.com>`_
- `https://joythebaker.com/ <https://joythebaker.com>`_
- `https://juliegoodwin.com.au/ <https://juliegoodwin.com.au>`_
- `https://justataste.com/ <https://justataste.com>`_
- `https://justbento.com/ <https://justbento.com>`_
- `https://www.justonecookbook.com/ <https://www.justonecookbook.com>`_
- `https://kalejunkie.com/ <https://kalejunkie.com/>`_
- `https://kennymcgovern.com/ <https://kennymcgovern.com>`_
- `https://keukenliefde.nl/ <https://keukenliefde.nl>`_
- `https://www.kingarthurbaking.com <https://www.kingarthurbaking.com>`_
- `https://kitchenaid.com.au/ <https://kitchenaid.com.au/blogs/kitchenthusiast/tagged/blog-category-recipes>`_
- `https://kitchendivas.com <https://kitchendivas.com>`_
- `https://www.kitchendreaming.com <https://www.kitchendreaming.com>`_
- `https://www.kitchensanctuary.com/ <https://www.kitchensanctuary.com>`_
- `https://www.kitchenstories.com/ <https://www.kitchenstories.com>`_
- `https://kochbar.de/ <https://kochbar.de>`_
- `https://kochbucher.com/ <https://kochbucher.com/>`_
- `http://koket.se/ <http://koket.se>`_
- `https://kristineskitchenblog.com/ <https://kristineskitchenblog.com>`_
- `https://krollskorner.com/ <https://krollskorner.com/>`_
- `https://kuchnia-domowa.pl/ <https://www.kuchnia-domowa.pl/>`_
- `https://kuchynalidla.sk/ <https://www.kuchynalidla.sk/>`_
- `https://www.kwestiasmaku.com/ <https://www.kwestiasmaku.com/>`_
- `https://lanascooking.com/ <https://lanascooking.com/>`_
- `https://www.latelierderoxane.com <https://www.latelierderoxane.com/blog/recettes/>`_
- `https://leanandgreenrecipes.net <https://leanandgreenrecipes.net>`_
- `https://www.lecker.de <https://www.lecker.de/rezepte>`_
- `https://lecremedelacrumb.com/ <https://lecremedelacrumb.com/>`_
- `https://leitesculinaria.com <https://leitesculinaria.com>`_
- `https://lekkerensimpel.com <https://lekkerensimpel.com>`_
- `https://leukerecepten.nl/ <https://www.leukerecepten.nl>`_
- `https://lifestyleofafoodie.com <https://lifestyleofafoodie.com>`_
- `https://littlespicejar.com/ <https://littlespicejar.com>`_
- `https://littlesunnykitchen.com/ <https://littlesunnykitchen.com>`_
- `http://livelytable.com/ <http://livelytable.com/>`_
- `https://lovingitvegan.com/ <https://lovingitvegan.com/>`_
- `https://www.maangchi.com <https://www.maangchi.com>`_
- `https://www.madamecuisine.de <https://www.madamecuisine.de>`_
- `https://madensverden.dk/ <https://madensverden.dk/>`_
- `https://madsvin.com/ <https://madsvin.com/>`_
- `https://makeitdairyfree.com/ <https://makeitdairyfree.com/>`_
- `https://marmiton.org/ <https://marmiton.org/>`_
- `https://www.marthastewart.com/ <https://www.marthastewart.com/>`_
- `https://matprat.no/ <https://matprat.no/>`_
- `https://www.mccormick.com/ <https://www.mccormick.com/>`_
- `https://meganvskitchen.com/ <https://meganvskitchen.com/>`_
- `https://meljoulwan.com/ <https://meljoulwan.com/>`_
- `https://www.melskitchencafe.com/ <https://www.melskitchencafe.com/>`_
- `https://www.miljuschka.nl/ <https://www.miljuschka.nl/>`_
- `http://mindmegette.hu/ <http://mindmegette.hu/>`_
- `https://minimalistbaker.com/ <https://minimalistbaker.com/>`_
- `https://ministryofcurry.com/ <https://ministryofcurry.com/>`_
- `https://misya.info/ <https://misya.info>`_
- `https://www.mob.co.uk/ <https://www.mob.co.uk/>`_
- `https://mobkitchen.co.uk/ <https://mobkitchen.co.uk/>`_
- `https://www.modernhoney.com/ <https://www.modernhoney.com/>`_
- `https://www.momontimeout.com/ <https://www.momontimeout.com/>`_
- `https://momswithcrockpots.com/ <https://momswithcrockpots.com>`_
- `http://motherthyme.com/ <http://motherthyme.com/>`_
- `https://www.moulinex.fr/ <https://www.moulinex.fr/>`_
- `https://www.mundodereceitasbimby.com.pt/ <https://www.mundodereceitasbimby.com.pt/>`_
- `https://mybakingaddiction.com/ <https://mybakingaddiction.com>`_
- `https://myjewishlearning.com/ <https://myjewishlearning.com>`_
- `https://mykitchen101.com/ <https://mykitchen101.com>`_
- `https://mykitchen101en.com/ <https://mykitchen101en.com>`_
- `https://mykoreankitchen.com/ <https://mykoreankitchen.com>`_
- `https://www.myplate.gov/ <https://www.myplate.gov/>`_
- `https://myrecipes.com/ <https://myrecipes.com>`_
- `https://myvegetarianroots.com/ <https://myvegetarianroots.com/>`_
- `https://www.nhs.uk/healthier-families/ <https://www.nhs.uk/healthier-families/>`_
- `https://nibbledish.com/ <https://nibbledish.com>`_
- `https://noracooks.com/ <https://noracooks.com/>`_
- `https://norecipes.com/ <https://norecipes.com/>`_
- `https://nosalty.hu/ <https://nosalty.hu/>`_
- `https://www.notenoughcinnamon.com/ <https://www.notenoughcinnamon.com/>`_
- `https://nourishedbynutrition.com/ <https://nourishedbynutrition.com/>`_
- `https://www.nrk.no/ <https://www.nrk.no/>`_
- `https://www.number-2-pencil.com/ <https://www.number-2-pencil.com/>`_
- `https://nutritionbynathalie.com/blog <https://nutritionbynathalie.com/blog>`_
- `https://nutritionfacts.org/ <https://nutritionfacts.org/>`_
- `https://ohsheglows.com/ <https://ohsheglows.com>`_
- `https://omnivorescookbook.com <https://omnivorescookbook.com>`_
- `https://www.onceuponachef.com <https://www.onceuponachef.com>`_
- `https://onesweetappetite.com/ <https://onesweetappetite.com>`_
- `https://owen-han.com/ <https://owen-han.com>`_
- `https://www.paleorunningmomma.com/ <https://www.paleorunningmomma.com>`_
- `https://www.panelinha.com.br/ <https://www.panelinha.com.br>`_
- `https://paninihappy.com/ <https://paninihappy.com>`_
- `https://www.peelwithzeal.com/ <https://www.peelwithzeal.com/>`_
- `https://www.persnicketyplates.com/ <https://www.persnicketyplates.com/>`_
- `https://www.pickuplimes.com/ <https://www.pickuplimes.com/>`_
- `https://pinchofyum.com/ <https://pinchofyum.com/>`_
- `https://www.pingodoce.pt/ <https://www.pingodoce.pt>`_
- `https://pinkowlkitchen.com/ <https://pinkowlkitchen.com/>`_
- `https://www.platingpixels.com/ <https://www.platingpixels.com/>`_
- `https://plowingthroughlife.com/ <https://plowingthroughlife.com/>`_
- `https://popsugar.com/ <https://popsugar.com>`_
- `https://potatorolls.com/ <https://potatorolls.com/>`_
- `https://practicalselfreliance.com/ <https://practicalselfreliance.com>`_
- `https://pressureluckcooking.com/ <https://pressureluckcooking.com/>`_
- `https://www.primaledgehealth.com/ <https://www.primaledgehealth.com/>`_
- `https://www.projectgezond.nl/ <https://www.projectgezond.nl/>`_
- `https://przepisy.pl/ <https://przepisy.pl>`_
- `https://purelypope.com/ <https://purelypope.com>`_
- `https://purplecarrot.com/ <https://purplecarrot.com>`_
- `https://quitoque.fr/ <https://quitoque.fr>`_
- `https://rachlmansfield.com/ <https://rachlmansfield.com>`_
- `https://rainbowplantlife.com/ <https://rainbowplantlife.com/>`_
- `https://realfood.tesco.com/ <https://realfood.tesco.com>`_
- `https://realsimple.com/ <https://www.realsimple.com>`_
- `https://receitas.globo.com/ <https://www.receitas.globo.com/>`_
- `https://receitas.ig.com.br/ <https://receitas.ig.com.br>`_
- `https://www.receitasnestle.com.br <https://www.receitasnestle.com.br>`_
- `https://recept.se/ <https://recept.se/>`_
- `https://receptyprevas.sk/ <https://receptyprevas.sk/>`_
- `https://recette.plus/ <https://recette.plus/>`_
- `https://www.recipegirl.com/ <https://www.recipegirl.com/>`_
- `https://recipeland.com/ <https://recipeland.com/>`_
- `https://reciperunner.com/ <https://www.reciperunner.com>`_
- `https://recipes.farmhousedelivery.com/ <https://recipes.farmhousedelivery.com/>`_
- `https://recipes.timesofindia.com/ <https://recipes.timesofindia.com/>`_
- `https://recipetineats.com/ <https://www.recipetineats.com/>`_
- `https://redhousespice.com/ <https://redhousespice.com/>`_
- `https://reishunger.de/ <https://www.reishunger.de/>`_
- `https://rewe.de/ <https://www.rewe.de>`_
- `https://rezeptwelt.de/ <https://rezeptwelt.de>`_
- `https://ricetta.it/ <https://ricetta.it>`_
- `https://ricette.giallozafferano.it/ <https://ricette.giallozafferano.it>`_
- `https://www.ricetteperbimby.it/ <https://www.ricetteperbimby.it/>`_
- `https://rosannapansino.com <https://rosannapansino.com>`_
- `https://rutgerbakt.nl/ <https://rutgerbakt.nl/>`_
- `https://www.saboresajinomoto.com.br/ <https://www.saboresajinomoto.com.br/>`_
- `https://sallys-blog.de <https://sallys-blog.de/>`_
- `https://sallysbakingaddiction.com <https://sallysbakingaddiction.com/>`_
- `https://saltpepperskillet.com/ <https://saltpepperskillet.com/>`_
- `https://sandwichtribunal.com/ <https://sandwichtribunal.com/>`_
- `https://www.saveur.com/ <https://www.saveur.com/>`_
- `https://www.savorynothings.com/ <https://www.savorynothings.com/>`_
- `https://schoolofwok.co.uk/ <https://schoolofwok.co.uk/>`_
- `https://seriouseats.com/ <https://seriouseats.com>`_
- `https://shelikesfood.com/ <https://shelikesfood.com/>`_
- `https://simple-veganista.com/ <https://simple-veganista.com/>`_
- `https://simply-cookit.com/ <https://simply-cookit.com>`_
- `https://simplyquinoa.com/ <https://simplyquinoa.com>`_
- `https://simplyrecipes.com/ <https://simplyrecipes.com>`_
- `https://simplywhisked.com/ <https://simplywhisked.com>`_
- `https://skinnytaste.com/ <https://www.skinnytaste.com>`_
- `https://smulweb.nl/ <https://smulweb.nl>`_
- `https://sobors.hu/ <https://sobors.hu>`_
- `https://www.southerncastiron.com/ <https://www.southerncastiron.com>`_
- `https://southernliving.com/ <https://southernliving.com/>`_
- `https://spainonafork.com/ <https://spainonafork.com/>`_
- `https://spendwithpennies.com/ <https://spendwithpennies.com/>`_
- `https://www.springlane.de <https://www.springlane.de>`_
- `https://www.staysnatched.com/ <https://www.staysnatched.com/>`_
- `https://steamykitchen.com/ <https://steamykitchen.com>`_
- `https://streetkitchen.hu/ <https://streetkitchen.hu>`_
- `https://www.strongrfastr.com <https://www.strongrfastr.com>`_
- `https://sunbasket.com/ <https://sunbasket.com>`_
- `https://sundpaabudget.dk/ <https://sundpaabudget.dk>`_
- `https://www.sunset.com/ <https://www.sunset.com/>`_
- `https://sweetcsdesigns.com/ <https://www.sweetcsdesigns.com/>`_
- `https://sweetpeasandsaffron.com/ <https://sweetpeasandsaffron.com/>`_
- `https://www.taste.com.au/ <https://www.taste.com.au/>`_
- `https://www.tasteatlas.com/ <https://www.tasteatlas.com/>`_
- `https://tasteofhome.com <https://tasteofhome.com>`_
- `https://tastesbetterfromscratch.com <https://tastesbetterfromscratch.com>`_
- `https://tastesoflizzyt.com <https://tastesoflizzyt.com>`_
- `https://tasty.co <https://tasty.co>`_
- `https://tastykitchen.com/ <https://tastykitchen.com>`_
- `https://theclevercarrot.com/ <https://theclevercarrot.com>`_
- `https://www.thecookierookie.com/ <https://www.thecookierookie.com/>`_
- `https://thecookingguy.com/ <https://thecookingguy.com>`_
- `https://thefoodietakesflight.com/ <https://thefoodietakesflight.com/>`_
- `https://theglutenfreeaustrian.com/ <https://theglutenfreeaustrian.com/>`_
- `https://thehappyfoodie.co.uk/ <https://thehappyfoodie.co.uk>`_
- `https://thekitchencommunity.org/ <https://thekitchencommunity.org/>`_
- `https://www.thekitchenmagpie.com/ <https://www.thekitchenmagpie.com>`_
- `https://thekitchn.com/ <https://thekitchn.com/>`_
- `https://theloopywhisk.com/ <https://theloopywhisk.com/>`_
- `https://www.themagicalslowcooker.com/ <https://www.themagicalslowcooker.com/>`_
- `https://themediterraneandish.com/ <https://themediterraneandish.com/>`_
- `https://themodernproper.com/ <https://themodernproper.com/>`_
- `https://www.thepalatablelife.com <https://www.thepalatablelife.com/>`_
- `https://thepioneerwoman.com/ <https://thepioneerwoman.com>`_
- `https://therecipecritic.com/ <https://therecipecritic.com>`_
- `https://thesaltymarshmallow.com/ <https://thesaltymarshmallow.com/>`_
- `https://thespruceeats.com/ <https://thespruceeats.com/>`_
- `https://thevintagemixer.com/ <https://thevintagemixer.com>`_
- `https://thewoksoflife.com/ <https://thewoksoflife.com/>`_
- `https://thinlicious.com/ <https://thinlicious.com/>`_
- `https://tidymom.net <https://tidymom.net>`_
- `https://tine.no/ <https://tine.no>`_
- `https://tofoo.co.uk <https://tofoo.co.uk>`_
- `https://tudogostoso.com.br/ <https://www.tudogostoso.com.br/>`_
- `https://twopeasandtheirpod.com/ <http://twopeasandtheirpod.com>`_
- `https://uitpaulineskeuken.nl/ <https://uitpaulineskeuken.nl>`_
- `https://unsophisticook.com/ <https://unsophisticook.com/>`_
- `https://usapears.org/ <https://usapears.org>`_
- `https://www.valdemarsro.dk/ <https://www.valdemarsro.dk/>`_
- `https://vanillaandbean.com/ <https://vanillaandbean.com>`_
- `https://varecha.pravda.sk/ <https://varecha.pravda.sk>`_
- `https://www.vegetarbloggen.no/ <https://www.vegetarbloggen.no/>`_
- `https://vegolosi.it/ <https://vegolosi.it>`_
- `https://vegrecipesofindia.com/ <https://www.vegrecipesofindia.com/>`_
- `https://veroniquecloutier.com <https://veroniquecloutier.com>`_
- `https://www.waitrose.com/ <https://www.waitrose.com/>`_
- `https://watchwhatueat.com/ <https://watchwhatueat.com/>`_
- `https://wearenotmartha.com/ <https://wearenotmartha.com/>`_
- `https://wedishitup.com/ <https://wedishitup.com/>`_
- `https://www.weightwatchers.com/ <https://www.weightwatchers.com/>`_ (*)
- `https://www.wellplated.com/ <https://www.wellplated.com/>`_
- `https://whatsgabycooking.com/ <https://whatsgabycooking.com>`_
- `https://whole30.com/ <https://whole30.com/>`_
- `https://www.wholefoodsmarket.com/ <https://www.wholefoodsmarket.com/>`_
    - `.co.uk <https://www.wholefoodsmarket.co.uk/>`__
- `https://www.williams-sonoma.com/ <https://www.williams-sonoma.com/>`_
- `https://womensweeklyfood.com.au/ <https://womensweeklyfood.com.au/>`_
- `https://woop.co.nz/ <https://woop.co.nz/>`_
- `https://yemek.com/ <https://yemek.com>`_
- `https://yummly.com/ <https://yummly.com>`_ (*)
- `https://www.zaubertopf.de <https://www.zaubertopf.de>`_
- `https://zeit.de/ (wochenmarkt) <https://www.zeit.de/zeit-magazin/wochenmarkt/index>`_
- `https://zenbelly.com/ <https://zenbelly.com>`_

(*) offline saved files only


Contribute
----------

If you spot a design change (or something else) that makes the scraper unable to work for a given site - please fire an issue asap.

If you are programmer PRs with fixes are warmly welcomed and acknowledged with a virtual beer. You can find documentation on how to develop scrapers `here <https://github.com/hhursev/recipe-scrapers/blob/main/docs/README.md>`__.


If you want a scraper for a new site added
------------------------------------------

- Open an `Issue <https://github.com/hhursev/recipe-scraper/issues/new>`_ providing us the site name, as well as a recipe link from it.
- You are a developer and want to code the scraper on your own:

  - If `Schema is available <#faq>`_ on the site - `you can go like this. <https://github.com/hhursev/recipe-scrapers/pull/176>`_
  - Otherwise, scrape the HTML - `like this <https://github.com/hhursev/recipe-scrapers/commit/ffee963d04>`_
  - Generating a new scraper class:

    .. code:: shell

        python generate.py <ClassName> <URL>

    - **ClassName**: The name of the new scraper class.
    - **URL**: The URL of an example recipe from the target site. The content will be stored in ``test_data`` to be used with the test class.

    You can find a more detailed guide `here <https://github.com/hhursev/recipe-scrapers/blob/main/docs/how-to-develop-scraper.md>`__.


For Devs / Contribute
---------------------

Assuming you have ``>=python3.9`` installed, navigate to the directory where you want this project to live in and drop these lines

.. code:: shell

    git clone git@github.com:hhursev/recipe-scrapers.git &&
    cd recipe-scrapers &&
    python -m venv .venv &&
    source .venv/bin/activate &&
    python -m pip install --upgrade pip &&
    pip install -e ".[dev]" &&
    pip install pre-commit &&
    pre-commit install &&
    python -m unittest

In case you want to run a single unittest for a newly developed scraper

.. code:: shell

    python -m unittest -k <test_file_name>


FAQ
---
**What if the recipe site I want to extract information from is not listed above?**

You can give it a try with the ``wild_mode`` option!

If there is Schema/Recipe available it will work just fine.

.. code:: python

    url = 'https://www.feastingathome.com/tomato-risotto/'
    name = input('What is your name, risotto sampler?\n')
    html = requests.get(url, headers={"User-Agent": f"Risotto Sampler {name}"}).content
    scraper = scrape_html(html, org_url=url, wild_mode=True)

    scraper.host()
    scraper.title()
    scraper.total_time()
    scraper.image()
    scraper.ingredients()
    scraper.ingredient_groups()
    scraper.instructions()
    scraper.instructions_list()
    scraper.yields()
    scraper.to_json()
    scraper.links()
    scraper.nutrients()  # not always available
    scraper.canonical_url()  # not always available
    scraper.equipment()  # not always available
    scraper.cooking_method()  # not always available
    scraper.keywords()  # not always available
    scraper.dietary_restrictions() # not always available

Notes:

- ``scraper.links()`` returns a list of dictionaries containing all of the <a> tag attributes. The attribute names are the dictionary keys.


**How do I know if a website has a Recipe Schema?**

Run in python shell:

.. code:: python

    # first ensure you have the required packages:
    # pip install "recipe-scrapers[online]"

    from recipe_scrapers import scrape_html
    scraper = scrape_html(html=None, org_url='<url of a recipe from the site>', online=True, wild_mode=True)
    # if no error is raised - there's schema available:
    scraper.title()
    scraper.instructions()  # etc.


Special thanks to:
------------------

All the `contributors that helped improving <https://github.com/hhursev/recipe-scrapers/graphs/contributors>`_  the package. You are awesome!

.. image:: https://contrib.rocks/image?repo=hhursev/recipe-scrapers
   :target: https://github.com/hhursev/recipe-scrapers/graphs/contributors


Test Data Notice
----------------

All content in ``tests/test_data/`` is used for limited, non-commercial testing purposes and belongs to their respective copyright holders. See the ``tests/test_data/LICENSE.md`` for details. If you're a copyright holder with concerns, you can open an issue or contact us privately via the email in our PyPI page.


Extra:
------
| You want to gather recipes data?
| You have an idea you want to implement?
| Check out `our "Share a project" wall <https://github.com/hhursev/recipe-scrapers/issues/9>`_ - it may save you time and spark ideas!

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "recipe-scrapers",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "James Addison <james@reciperadar.com>",
    "keywords": "python, recipes, scraper, harvest, recipe-scraper, recipe-scrapers",
    "author": null,
    "author_email": "Hristo Harsev <r+pypi@hharsev.com>, James Addison <james@reciperadar.com>",
    "download_url": "https://files.pythonhosted.org/packages/74/79/601153905952716d9f2a6433ee40bcff951120daf4952f36d8c66426579e/recipe_scrapers-15.3.3.tar.gz",
    "platform": null,
    "description": ".. image:: https://img.shields.io/github/stars/hhursev/recipe-scrapers?style=social\n    :target: https://github.com/hhursev/recipe-scrapers/\n    :alt: Github\n.. image:: https://img.shields.io/pypi/v/recipe-scrapers.svg?\n    :target: https://pypi.org/project/recipe-scrapers/\n    :alt: Version\n.. image:: https://img.shields.io/pypi/pyversions/recipe-scrapers\n    :target: https://pypi.org/project/recipe-scrapers/\n    :alt: PyPI - Python Version\n.. image:: https://pepy.tech/badge/recipe-scrapers\n    :target: https://pepy.tech/project/recipe-scrapers\n    :alt: Downloads\n.. image:: https://github.com/hhursev/recipe-scrapers/workflows/unittests/badge.svg?branch=main\n    :target: https://github.com/hhursev/recipe-scrapers/actions/\n    :alt: GitHub Actions Unittests\n.. image:: https://coveralls.io/repos/hhursev/recipe-scraper/badge.svg?branch=main&service=github\n    :target: https://coveralls.io/github/hhursev/recipe-scraper?branch=main\n    :alt: Coveralls\n.. image:: https://img.shields.io/github/license/hhursev/recipe-scrapers?\n    :target: https://github.com/hhursev/recipe-scrapers/blob/main/LICENSE\n    :alt: License\n\n\n------\n\n\nA simple scraping tool for recipe webpages.\n\n\nNetiquette\n----------\n\nIf you're using this library to collect large numbers of recipes from the web, please use the software responsibly and try to avoid creating high volumes of network traffic.\n\nPython's standard library provides a ``robots.txt`` `parser <https://docs.python.org/3/library/urllib.robotparser.html>`_ that may be helpful to automatically follow common instructions specified by websites for web crawlers.\n\n\nGetting Started\n---------------\n\nStart by using `Python's built-in package installer <https://docs.python.org/3/installing/index.html>`_, ``pip``, to install the library:\n\n.. code:: shell\n\n    python -m pip install recipe-scrapers\n\nThis should produce output about the installation process, with the final line reading: ``Successfully installed recipe-scrapers-<version-number>``.\n\nTo learn what the library can do, you can open a `Python interpreter session <https://docs.python.org/3/tutorial/interpreter.html>`_, and then begin typing -- and/or modifying -- the statements below:\n\n.. code:: python\n\n    from urllib.request import urlopen\n\n    from recipe_scrapers import scrape_html\n\n    url = \"https://www.allrecipes.com/recipe/158968/spinach-and-feta-turkey-burgers/\"\n    html = urlopen(url).read().decode(\"utf-8\")  # retrieves the recipe webpage HTML\n    scraper = scrape_html(html, org_url=url)\n    scraper.title()\n    scraper.instructions()  # etc.\n    # for a complete list of methods:\n    # help(scraper)\n\nSome Python HTTP clients that you can use to retrieve HTML include `requests`_, `httpx`_, and the `urllib.request module`_ included in Python's standard library.  Please refer to their documentation to find out what options (timeout configuration, proxy support, etc) are available.\n\n.. _requests: https://pypi.org/project/requests/\n\n.. _httpx: https://pypi.org/project/httpx/\n\n.. _urllib.request module: https://docs.python.org/3/library/urllib.request.html\n\n\nScrapers available for:\n-----------------------\n\n- `https://101cookbooks.com/ <https://101cookbooks.com/>`_\n- `https://15gram.be <https://15gram.be>`_\n- `https://40aprons.com/ <https://40aprons.com/>`_\n- `https://www.750g.com <https://www.750g.com>`_\n- `https://abeautifulmess.com/ <https://abeautifulmess.com/>`_\n- `https://aberlehome.com/ <https://aberlehome.com>`_\n- `https://abuelascounter.com/ <https://abuelascounter.com>`_\n- `https://www.acouplecooks.com <https://acouplecooks.com/>`_\n- `https://addapinch.com/ <https://addapinch.com/>`_\n- `http://www.afghankitchenrecipes.com/ <http://www.afghankitchenrecipes.com/>`_\n- `https://aflavorjournal.com/ <https://aflavorjournal.com/>`_\n- `https://ah.nl/ <https://ah.nl/>`_\n- `https://www.ahealthysliceoflife.com/ <https://www.ahealthysliceoflife.com/>`_\n- `https://akispetretzikis.com/ <https://akispetretzikis.com/>`_\n- `https://aldi-nord.de/ <https://aldi-nord.de/>`_\n    - `.es <https://aldi.es/>`__, `.fr <https://aldi.fr/>`__, `.lu <https://aldi.lu/>`__, `.nl <https://aldi.nl/>`__, `.pl <https://aldi.pl/>`__, `.pt <https://aldi.pt/>`__\n- `https://aldi-sued.de/ <https://aldi-sued.de/>`_\n    - `.hu <https://aldi.hu/>`__, `.it <https://aldi.it/>`__\n- `https://aldi-suisse.ch <https://aldi-suisse.ch/>`_\n- `https://aldi.com.au/ <https://aldi.com.au/>`_\n- `https://alexandracooks.com/ <https://alexandracooks.com/>`_\n- `https://alittlebityummy.com/ <https://alittlebityummy.com/>`_\n- `https://allrecipes.com/ <https://allrecipes.com/>`_\n- `https://allthehealthythings.com/ <https://allthehealthythings.com/>`_\n- `https://alltommat.se/ <https://alltommat.se/>`_\n- `https://altonbrown.com/ <https://altonbrown.com/>`_\n- `https://amazingribs.com/ <https://amazingribs.com/>`_\n- `https://ambitiouskitchen.com/ <https://ambitiouskitchen.com>`_\n- `https://ameessavorydish.com/ <https://ameessavorydish.com/>`_\n- `https://americastestkitchen.com/ <https://www.americastestkitchen.com>`_ (*)\n- `https://archanaskitchen.com/ <https://archanaskitchen.com/>`_\n- `https://www.argiro.gr/ <https://www.argiro.gr/>`_\n- `https://www.arla.se/ <https://www.arla.se/>`_\n- `https://www.atelierdeschefs.fr/ <https://www.atelierdeschefs.fr/>`_\n- `https://averiecooks.com/ <https://www.averiecooks.com/>`_\n- `https://www.bakels.com.au/ <https://www.bakels.com.au/>`_\n    - `.co.uk <https://bakels.co.uk/>`_\n- `https://baking-sense.com/ <https://baking-sense.com/>`_\n- `https://bakingmischief.com/ <https://bakingmischief.com/>`_\n- `https://barefeetinthekitchen.com/ <https://barefeetinthekitchen.com/>`_\n- `https://barefootcontessa.com/ <https://barefootcontessa.com>`_\n- `https://barefootinthepines.com/ <https://barefootinthepines.com/>`_\n- `https://bbc.com/ <https://bbc.com/food/recipes>`_\n    - `.co.uk <https://bbc.co.uk/food/recipes>`__\n- `https://bbcgoodfood.com/ <https://bbcgoodfood.com>`_\n- `https://bestrecipes.com.au/ <https://bestrecipes.com.au>`_\n- `https://betterfoodguru.com/ <https://betterfoodguru.com/>`_\n- `https://bettybossi.ch/ <https://bettybossi.ch>`_\n- `https://bettycrocker.com/ <https://bettycrocker.com>`_\n- `https://beyondfrosting.com/ <https://beyondfrosting.com/>`_\n- `https://biancazapatka.com/ <https://biancazapatka.com>`_\n- `https://bigoven.com/ <https://bigoven.com>`_\n- `https://bitsofcarey.com/ <https://bitsofcarey.com/>`_\n- `https://blueapron.com/ <https://blueapron.com>`_\n- `https://bluejeanchef.com/ <https://bluejeanchef.com/>`_\n- `https://www.bodybuilding.com/ <https://www.bodybuilding.com/>`_\n- `https://bonappetit.com/ <https://bonappetit.com>`_\n- `https://bongeats.com/ <https://bongeats.com/>`_\n- `https://books.ottolenghi.co.uk <https://books.ottolenghi.co.uk/>`_ (*)\n- `https://bowlofdelicious.com/ <https://bowlofdelicious.com/>`_\n- `https://breadtopia.com/ <https://breadtopia.com/>`_\n- `https://briceletbaklava.ch/ <https://briceletbaklava.ch/>`_\n- `https://brokenovenbaking.com/ <https://brokenovenbaking.com/>`_\n- `https://budgetbytes.com/ <https://budgetbytes.com>`_\n- `https://cafedelites.com/ <https://cafedelites.com/>`_\n- `https://cakemehometonight.com/ <https://cakemehometonight.com/>`_\n- `https://cambreabakes.com/ <https://cambreabakes.com/>`_\n- `https://carlsbadcravings.com/ <https://carlsbadcravings.com/>`_\n- `https://castironketo.net/ <https://castironketo.net/>`_\n- `https://cdkitchen.com/ <https://cdkitchen.com/>`_\n- `https://celebratingsweets.com/ <https://celebratingsweets.com/>`_\n- `https://chefjeanpierre.com/ <https://chefjeanpierre.com/>`_\n- `https://chefkoch.de/ <https://chefkoch.de>`_\n- `https://www.chefnini.com/ <https://www.chefnini.com/>`_\n- `https://chefsavvy.com/ <https://chefsavvy.com/>`_\n- `https://claudia.abril.com.br/ <https://claudia.abril.com.br>`_\n- `https://closetcooking.com/ <https://closetcooking.com>`_\n- `https://colleenchristensennutrition.com/ <https://colleenchristensennutrition.com/>`_\n- `https://comidinhasdochef.com/ <https://comidinhasdochef.com/>`_\n- `https://cook-talk.com/ <https://cook-talk.com/>`_\n- `https://cookeatshare.com/ <https://cookeatshare.com/>`_\n- `https://cookieandkate.com/ <https://cookieandkate.com/>`_\n- `https://cookiesandcups.com/ <https://cookiesandcups.com/>`_\n- `https://cooking.nytimes.com/ <https://cooking.nytimes.com>`_\n- `https://cookingcircle.com/ <https://cookingcircle.com/>`_\n- `https://cookinglight.com/ <https://cookinglight.com/>`_\n- `https://cookomix.com/ <https://cookomix.com/>`_\n- `https://cookpad.com/ <https://cookpad.com/>`_\n- `https://cookscountry.com/ <https://www.cookscountry.com>`_ (*)\n- `https://cooksillustrated.com/ <https://www.cooksillustrated.com>`_ (*)\n- `https://cookwell.com/ <https://cookwell.com/>`_\n- `https://copykat.com/ <https://copykat.com>`_\n- `https://www.costco.com/ <https://www.costco.com>`_\n- `https://countryliving.com/ <https://countryliving.com>`_\n- `https://creativecanning.com/ <https://creativecanning.com>`_\n- `https://cucchiaio.it/ <https://cucchiaio.it>`_\n- `https://cuisineaz.com/ <https://cuisineaz.com>`_\n- `https://cybercook.com.br/ <https://cybercook.com.br/>`_\n- `https://damndelicious.net/ <https://damndelicious.net/>`_\n- `https://www.davidlebovitz.com/ <https://www.davidlebovitz.com/>`_\n- `https://delish.com/ <https://delish.com>`_\n- `https://dinneratthezoo.com/ <https://dinneratthezoo.com>`_\n- `https://dinnerthendessert.com/ <https://dinnerthendessert.com/>`_\n- `https://dish.co.nz/ <https://dish.co.nz>`_\n- `https://dobruchut.aktuality.sk/ <https://dobruchut.aktuality.sk>`_\n- `https://domesticate-me.com/ <https://domesticate-me.com/>`_\n- `https://donalskehan.com/ <https://donalskehan.com/>`_\n- `https://downshiftology.com/ <https://downshiftology.com/>`_\n- `https://www.dr.dk/ <https://www.dr.dk/>`_\n- `https://www.eatingbirdfood.com/ <https://www.eatingbirdfood.com>`_\n- `https://www.eatingwell.com/ <https://www.eatingwell.com>`_\n- `https://www.eatliverun.com/ <https://www.eatliverun.com/>`_\n- `https://eatsmarter.com/ <https://eatsmarter.com/>`_\n    - `.de <https://eatsmarter.de/>`__\n- `https://eatthismuch.com/ <https://eatthismuch.com/>`_\n- `https://eattolerant.de/ <https://eattolerant.de/>`_\n- `https://www.eatwell101.com <https://www.eatwell101.com>`_\n- `https://eatwhattonight.com/ <https://eatwhattonight.com/>`_\n- `https://eggs.ca/ <https://eggs.ca/>`_\n- `https://elavegan.com/ <https://elavegan.com/>`_\n- `https://emmikochteinfach.de/ <https://emmikochteinfach.de/>`_\n- `https://en.wikibooks.org/ <https://en.wikibooks.org>`_\n- `https://epicurious.com/ <https://epicurious.com>`_\n- `https://www.errenskitchen.com/ <https://www.errenskitchen.com/>`_\n- `https://ethanchlebowski.com/ <https://ethanchlebowski.com>`_\n- `https://www.evolvingtable.com/ <https://www.evolvingtable.com/>`_\n- `https://www.familyfoodonthetable.com/ <https://www.familyfoodonthetable.com/>`_\n- `https://www.farmhouseonboone.com/ <https://www.farmhouseonboone.com/>`_\n- `https://www.fattoincasadabenedetta.it/ <https://www.fattoincasadabenedetta.it/>`_\n- `https://felix.kitchen <https://felix.kitchen>`_\n- `https://fifteenspatulas.com/ <https://www.fifteenspatulas.com/>`_\n- `https://finedininglovers.com/ <https://www.finedininglovers.com>`_\n- `https://fitmencook.com/ <https://www.fitmencook.com>`_\n- `https://fitslowcookerqueen.com <https://fitslowcookerqueen.com/>`_\n- `https://food.com/ <https://www.food.com>`_\n- `https://food52.com/ <https://www.food52.com>`_\n- `https://foodandwine.com/ <https://www.foodandwine.com>`_\n- `https://foodfidelity.com/ <https://foodfidelity.com>`_\n- `https://foodnetwork.co.uk/ <https://www.foodnetwork.co.uk>`_\n    - `.com <https://www.foodnetwork.com>`__\n- `https://foodrepublic.com/ <https://foodrepublic.com>`_\n- `https://www.forksoverknives.com/ <https://www.forksoverknives.com/>`_\n- `https://forktospoon.com/ <https://forktospoon.com/>`_\n- `https://franzoesischkochen.de/ <https://franzoesischkochen.de/>`_\n- `https://www.gesund-aktiv.com/ <https://www.gesund-aktiv.com>`_\n- `https://gimmesomeoven.com/ <https://www.gimmesomeoven.com/>`_\n- `https://glutenfreeonashoestring.com/ <https://glutenfreeonashoestring.com/>`_\n- `https://godt.no/ <https://godt.no/>`_\n- `https://gonnawantseconds.com/ <https://gonnawantseconds.com>`_\n- `https://goodfooddiscoveries.com/ <https://goodfooddiscoveries.com/>`_\n- `https://goodhousekeeping.com/ <https://www.goodhousekeeping.com/>`_\n- `https://gourmettraveller.com.au/ <https://gourmettraveller.com.au>`_\n- `https://www.grandfrais.com/ <https://www.grandfrais.com>`_\n- `https://greatbritishchefs.com/ <https://greatbritishchefs.com>`_\n- `https://grimgrains.com/ <https://grimgrains.com>`_\n- `http://www.grouprecipes.com/ <http://www.grouprecipes.com/>`_\n- `https://halfbakedharvest.com/ <https://www.halfbakedharvest.com/>`_\n- `https://handletheheat.com/ <https://handletheheat.com/>`_\n- `https://www.hassanchef.com/ <https://www.hassanchef.com/>`_\n- `https://headbangerskitchen.com/ <https://www.headbangerskitchen.com/>`_\n- `https://healthyeating.nhlbi.nih.gov/ <https://healthyeating.nhlbi.nih.gov>`_\n- `https://heatherchristo.com/ <https://heatherchristo.com/>`_\n- `https://www.heb.com/ <https://www.heb.com/recipe/landing>`_\n- `https://hellofresh.com/ <https://hellofresh.com>`_\n    - `.at <https://www.hellofresh.at/>`__, `.be <https://www.hellofresh.be/>`__, `.ca <https://www.hellofresh.ca/>`__, `.ch <https://www.hellofresh.ch/>`__, `.co.nz <https://www.hellofresh.co.nz/>`__, `.co.uk <https://hellofresh.co.uk>`__, `.com.au <https://www.hellofresh.com.au/>`__, `.de <https://www.hellofresh.de/>`__, `.dk <https://www.hellofresh.dk/>`__, `.es <https://www.hellofresh.es/>`__, `.fr <https://www.hellofresh.fr/>`__, `.ie <https://www.hellofresh.ie/>`__, `.it <https://www.hellofresh.it/>`__, `.lu <https://www.hellofresh.lu/>`__, `.nl <https://www.hellofresh.nl/>`__, `.no <https://www.hellofresh.no/>`__, `.se <https://www.hellofresh.se/>`__\n- `https://www.hersheyland.com/ <https://www.hersheyland.com/>`_\n- `https://hofer.at/ <https://hofer.at/>`_\n    - `.si <https://hofer.si/>`__\n- `https://www.homechef.com/ <https://www.homechef.com/>`_\n- `https://hostthetoast.com/ <https://hostthetoast.com/>`_\n- `https://hungryhappens.net/ <https://hungryhappens.net/>`_\n- `https://www.ica.se/ <https://www.ica.se/>`_\n- `https://www.im-worthy.com/ <https://www.im-worthy.com>`_\n- `https://inbloombakery.com/ <https://inbloombakery.com/>`_\n- `https://indianhealthyrecipes.com <https://www.indianhealthyrecipes.com>`_\n- `https://ingoodflavor.com <https://www.ingoodflavor.com>`_\n- `https://www.innit.com/ <https://www.innit.com/>`_\n- `https://insanelygoodrecipes.com <https://insanelygoodrecipes.com/>`_\n- `https://inspiralized.com/ <https://inspiralized.com>`_\n- `https://inspiredtaste.net/ <https://inspiredtaste.net/>`_\n- `https://irishcentral.com/ <https://irishcentral.com>`_\n- `https://izzycooking.com/ <https://izzycooking.com/>`_\n- `https://jamieoliver.com/ <https://jamieoliver.com>`_\n- `https://jimcooksfoodgood.com/ <https://jimcooksfoodgood.com/>`_\n- `https://www.jocooks.com/ <https://www.jocooks.com>`_\n- `https://joshuaweissman.com/ <https://joshuaweissman.com/>`_\n- `https://joyfoodsunshine.com/ <https://joyfoodsunshine.com>`_\n- `https://joythebaker.com/ <https://joythebaker.com>`_\n- `https://juliegoodwin.com.au/ <https://juliegoodwin.com.au>`_\n- `https://justataste.com/ <https://justataste.com>`_\n- `https://justbento.com/ <https://justbento.com>`_\n- `https://www.justonecookbook.com/ <https://www.justonecookbook.com>`_\n- `https://kalejunkie.com/ <https://kalejunkie.com/>`_\n- `https://kennymcgovern.com/ <https://kennymcgovern.com>`_\n- `https://keukenliefde.nl/ <https://keukenliefde.nl>`_\n- `https://www.kingarthurbaking.com <https://www.kingarthurbaking.com>`_\n- `https://kitchenaid.com.au/ <https://kitchenaid.com.au/blogs/kitchenthusiast/tagged/blog-category-recipes>`_\n- `https://kitchendivas.com <https://kitchendivas.com>`_\n- `https://www.kitchendreaming.com <https://www.kitchendreaming.com>`_\n- `https://www.kitchensanctuary.com/ <https://www.kitchensanctuary.com>`_\n- `https://www.kitchenstories.com/ <https://www.kitchenstories.com>`_\n- `https://kochbar.de/ <https://kochbar.de>`_\n- `https://kochbucher.com/ <https://kochbucher.com/>`_\n- `http://koket.se/ <http://koket.se>`_\n- `https://kristineskitchenblog.com/ <https://kristineskitchenblog.com>`_\n- `https://krollskorner.com/ <https://krollskorner.com/>`_\n- `https://kuchnia-domowa.pl/ <https://www.kuchnia-domowa.pl/>`_\n- `https://kuchynalidla.sk/ <https://www.kuchynalidla.sk/>`_\n- `https://www.kwestiasmaku.com/ <https://www.kwestiasmaku.com/>`_\n- `https://lanascooking.com/ <https://lanascooking.com/>`_\n- `https://www.latelierderoxane.com <https://www.latelierderoxane.com/blog/recettes/>`_\n- `https://leanandgreenrecipes.net <https://leanandgreenrecipes.net>`_\n- `https://www.lecker.de <https://www.lecker.de/rezepte>`_\n- `https://lecremedelacrumb.com/ <https://lecremedelacrumb.com/>`_\n- `https://leitesculinaria.com <https://leitesculinaria.com>`_\n- `https://lekkerensimpel.com <https://lekkerensimpel.com>`_\n- `https://leukerecepten.nl/ <https://www.leukerecepten.nl>`_\n- `https://lifestyleofafoodie.com <https://lifestyleofafoodie.com>`_\n- `https://littlespicejar.com/ <https://littlespicejar.com>`_\n- `https://littlesunnykitchen.com/ <https://littlesunnykitchen.com>`_\n- `http://livelytable.com/ <http://livelytable.com/>`_\n- `https://lovingitvegan.com/ <https://lovingitvegan.com/>`_\n- `https://www.maangchi.com <https://www.maangchi.com>`_\n- `https://www.madamecuisine.de <https://www.madamecuisine.de>`_\n- `https://madensverden.dk/ <https://madensverden.dk/>`_\n- `https://madsvin.com/ <https://madsvin.com/>`_\n- `https://makeitdairyfree.com/ <https://makeitdairyfree.com/>`_\n- `https://marmiton.org/ <https://marmiton.org/>`_\n- `https://www.marthastewart.com/ <https://www.marthastewart.com/>`_\n- `https://matprat.no/ <https://matprat.no/>`_\n- `https://www.mccormick.com/ <https://www.mccormick.com/>`_\n- `https://meganvskitchen.com/ <https://meganvskitchen.com/>`_\n- `https://meljoulwan.com/ <https://meljoulwan.com/>`_\n- `https://www.melskitchencafe.com/ <https://www.melskitchencafe.com/>`_\n- `https://www.miljuschka.nl/ <https://www.miljuschka.nl/>`_\n- `http://mindmegette.hu/ <http://mindmegette.hu/>`_\n- `https://minimalistbaker.com/ <https://minimalistbaker.com/>`_\n- `https://ministryofcurry.com/ <https://ministryofcurry.com/>`_\n- `https://misya.info/ <https://misya.info>`_\n- `https://www.mob.co.uk/ <https://www.mob.co.uk/>`_\n- `https://mobkitchen.co.uk/ <https://mobkitchen.co.uk/>`_\n- `https://www.modernhoney.com/ <https://www.modernhoney.com/>`_\n- `https://www.momontimeout.com/ <https://www.momontimeout.com/>`_\n- `https://momswithcrockpots.com/ <https://momswithcrockpots.com>`_\n- `http://motherthyme.com/ <http://motherthyme.com/>`_\n- `https://www.moulinex.fr/ <https://www.moulinex.fr/>`_\n- `https://www.mundodereceitasbimby.com.pt/ <https://www.mundodereceitasbimby.com.pt/>`_\n- `https://mybakingaddiction.com/ <https://mybakingaddiction.com>`_\n- `https://myjewishlearning.com/ <https://myjewishlearning.com>`_\n- `https://mykitchen101.com/ <https://mykitchen101.com>`_\n- `https://mykitchen101en.com/ <https://mykitchen101en.com>`_\n- `https://mykoreankitchen.com/ <https://mykoreankitchen.com>`_\n- `https://www.myplate.gov/ <https://www.myplate.gov/>`_\n- `https://myrecipes.com/ <https://myrecipes.com>`_\n- `https://myvegetarianroots.com/ <https://myvegetarianroots.com/>`_\n- `https://www.nhs.uk/healthier-families/ <https://www.nhs.uk/healthier-families/>`_\n- `https://nibbledish.com/ <https://nibbledish.com>`_\n- `https://noracooks.com/ <https://noracooks.com/>`_\n- `https://norecipes.com/ <https://norecipes.com/>`_\n- `https://nosalty.hu/ <https://nosalty.hu/>`_\n- `https://www.notenoughcinnamon.com/ <https://www.notenoughcinnamon.com/>`_\n- `https://nourishedbynutrition.com/ <https://nourishedbynutrition.com/>`_\n- `https://www.nrk.no/ <https://www.nrk.no/>`_\n- `https://www.number-2-pencil.com/ <https://www.number-2-pencil.com/>`_\n- `https://nutritionbynathalie.com/blog <https://nutritionbynathalie.com/blog>`_\n- `https://nutritionfacts.org/ <https://nutritionfacts.org/>`_\n- `https://ohsheglows.com/ <https://ohsheglows.com>`_\n- `https://omnivorescookbook.com <https://omnivorescookbook.com>`_\n- `https://www.onceuponachef.com <https://www.onceuponachef.com>`_\n- `https://onesweetappetite.com/ <https://onesweetappetite.com>`_\n- `https://owen-han.com/ <https://owen-han.com>`_\n- `https://www.paleorunningmomma.com/ <https://www.paleorunningmomma.com>`_\n- `https://www.panelinha.com.br/ <https://www.panelinha.com.br>`_\n- `https://paninihappy.com/ <https://paninihappy.com>`_\n- `https://www.peelwithzeal.com/ <https://www.peelwithzeal.com/>`_\n- `https://www.persnicketyplates.com/ <https://www.persnicketyplates.com/>`_\n- `https://www.pickuplimes.com/ <https://www.pickuplimes.com/>`_\n- `https://pinchofyum.com/ <https://pinchofyum.com/>`_\n- `https://www.pingodoce.pt/ <https://www.pingodoce.pt>`_\n- `https://pinkowlkitchen.com/ <https://pinkowlkitchen.com/>`_\n- `https://www.platingpixels.com/ <https://www.platingpixels.com/>`_\n- `https://plowingthroughlife.com/ <https://plowingthroughlife.com/>`_\n- `https://popsugar.com/ <https://popsugar.com>`_\n- `https://potatorolls.com/ <https://potatorolls.com/>`_\n- `https://practicalselfreliance.com/ <https://practicalselfreliance.com>`_\n- `https://pressureluckcooking.com/ <https://pressureluckcooking.com/>`_\n- `https://www.primaledgehealth.com/ <https://www.primaledgehealth.com/>`_\n- `https://www.projectgezond.nl/ <https://www.projectgezond.nl/>`_\n- `https://przepisy.pl/ <https://przepisy.pl>`_\n- `https://purelypope.com/ <https://purelypope.com>`_\n- `https://purplecarrot.com/ <https://purplecarrot.com>`_\n- `https://quitoque.fr/ <https://quitoque.fr>`_\n- `https://rachlmansfield.com/ <https://rachlmansfield.com>`_\n- `https://rainbowplantlife.com/ <https://rainbowplantlife.com/>`_\n- `https://realfood.tesco.com/ <https://realfood.tesco.com>`_\n- `https://realsimple.com/ <https://www.realsimple.com>`_\n- `https://receitas.globo.com/ <https://www.receitas.globo.com/>`_\n- `https://receitas.ig.com.br/ <https://receitas.ig.com.br>`_\n- `https://www.receitasnestle.com.br <https://www.receitasnestle.com.br>`_\n- `https://recept.se/ <https://recept.se/>`_\n- `https://receptyprevas.sk/ <https://receptyprevas.sk/>`_\n- `https://recette.plus/ <https://recette.plus/>`_\n- `https://www.recipegirl.com/ <https://www.recipegirl.com/>`_\n- `https://recipeland.com/ <https://recipeland.com/>`_\n- `https://reciperunner.com/ <https://www.reciperunner.com>`_\n- `https://recipes.farmhousedelivery.com/ <https://recipes.farmhousedelivery.com/>`_\n- `https://recipes.timesofindia.com/ <https://recipes.timesofindia.com/>`_\n- `https://recipetineats.com/ <https://www.recipetineats.com/>`_\n- `https://redhousespice.com/ <https://redhousespice.com/>`_\n- `https://reishunger.de/ <https://www.reishunger.de/>`_\n- `https://rewe.de/ <https://www.rewe.de>`_\n- `https://rezeptwelt.de/ <https://rezeptwelt.de>`_\n- `https://ricetta.it/ <https://ricetta.it>`_\n- `https://ricette.giallozafferano.it/ <https://ricette.giallozafferano.it>`_\n- `https://www.ricetteperbimby.it/ <https://www.ricetteperbimby.it/>`_\n- `https://rosannapansino.com <https://rosannapansino.com>`_\n- `https://rutgerbakt.nl/ <https://rutgerbakt.nl/>`_\n- `https://www.saboresajinomoto.com.br/ <https://www.saboresajinomoto.com.br/>`_\n- `https://sallys-blog.de <https://sallys-blog.de/>`_\n- `https://sallysbakingaddiction.com <https://sallysbakingaddiction.com/>`_\n- `https://saltpepperskillet.com/ <https://saltpepperskillet.com/>`_\n- `https://sandwichtribunal.com/ <https://sandwichtribunal.com/>`_\n- `https://www.saveur.com/ <https://www.saveur.com/>`_\n- `https://www.savorynothings.com/ <https://www.savorynothings.com/>`_\n- `https://schoolofwok.co.uk/ <https://schoolofwok.co.uk/>`_\n- `https://seriouseats.com/ <https://seriouseats.com>`_\n- `https://shelikesfood.com/ <https://shelikesfood.com/>`_\n- `https://simple-veganista.com/ <https://simple-veganista.com/>`_\n- `https://simply-cookit.com/ <https://simply-cookit.com>`_\n- `https://simplyquinoa.com/ <https://simplyquinoa.com>`_\n- `https://simplyrecipes.com/ <https://simplyrecipes.com>`_\n- `https://simplywhisked.com/ <https://simplywhisked.com>`_\n- `https://skinnytaste.com/ <https://www.skinnytaste.com>`_\n- `https://smulweb.nl/ <https://smulweb.nl>`_\n- `https://sobors.hu/ <https://sobors.hu>`_\n- `https://www.southerncastiron.com/ <https://www.southerncastiron.com>`_\n- `https://southernliving.com/ <https://southernliving.com/>`_\n- `https://spainonafork.com/ <https://spainonafork.com/>`_\n- `https://spendwithpennies.com/ <https://spendwithpennies.com/>`_\n- `https://www.springlane.de <https://www.springlane.de>`_\n- `https://www.staysnatched.com/ <https://www.staysnatched.com/>`_\n- `https://steamykitchen.com/ <https://steamykitchen.com>`_\n- `https://streetkitchen.hu/ <https://streetkitchen.hu>`_\n- `https://www.strongrfastr.com <https://www.strongrfastr.com>`_\n- `https://sunbasket.com/ <https://sunbasket.com>`_\n- `https://sundpaabudget.dk/ <https://sundpaabudget.dk>`_\n- `https://www.sunset.com/ <https://www.sunset.com/>`_\n- `https://sweetcsdesigns.com/ <https://www.sweetcsdesigns.com/>`_\n- `https://sweetpeasandsaffron.com/ <https://sweetpeasandsaffron.com/>`_\n- `https://www.taste.com.au/ <https://www.taste.com.au/>`_\n- `https://www.tasteatlas.com/ <https://www.tasteatlas.com/>`_\n- `https://tasteofhome.com <https://tasteofhome.com>`_\n- `https://tastesbetterfromscratch.com <https://tastesbetterfromscratch.com>`_\n- `https://tastesoflizzyt.com <https://tastesoflizzyt.com>`_\n- `https://tasty.co <https://tasty.co>`_\n- `https://tastykitchen.com/ <https://tastykitchen.com>`_\n- `https://theclevercarrot.com/ <https://theclevercarrot.com>`_\n- `https://www.thecookierookie.com/ <https://www.thecookierookie.com/>`_\n- `https://thecookingguy.com/ <https://thecookingguy.com>`_\n- `https://thefoodietakesflight.com/ <https://thefoodietakesflight.com/>`_\n- `https://theglutenfreeaustrian.com/ <https://theglutenfreeaustrian.com/>`_\n- `https://thehappyfoodie.co.uk/ <https://thehappyfoodie.co.uk>`_\n- `https://thekitchencommunity.org/ <https://thekitchencommunity.org/>`_\n- `https://www.thekitchenmagpie.com/ <https://www.thekitchenmagpie.com>`_\n- `https://thekitchn.com/ <https://thekitchn.com/>`_\n- `https://theloopywhisk.com/ <https://theloopywhisk.com/>`_\n- `https://www.themagicalslowcooker.com/ <https://www.themagicalslowcooker.com/>`_\n- `https://themediterraneandish.com/ <https://themediterraneandish.com/>`_\n- `https://themodernproper.com/ <https://themodernproper.com/>`_\n- `https://www.thepalatablelife.com <https://www.thepalatablelife.com/>`_\n- `https://thepioneerwoman.com/ <https://thepioneerwoman.com>`_\n- `https://therecipecritic.com/ <https://therecipecritic.com>`_\n- `https://thesaltymarshmallow.com/ <https://thesaltymarshmallow.com/>`_\n- `https://thespruceeats.com/ <https://thespruceeats.com/>`_\n- `https://thevintagemixer.com/ <https://thevintagemixer.com>`_\n- `https://thewoksoflife.com/ <https://thewoksoflife.com/>`_\n- `https://thinlicious.com/ <https://thinlicious.com/>`_\n- `https://tidymom.net <https://tidymom.net>`_\n- `https://tine.no/ <https://tine.no>`_\n- `https://tofoo.co.uk <https://tofoo.co.uk>`_\n- `https://tudogostoso.com.br/ <https://www.tudogostoso.com.br/>`_\n- `https://twopeasandtheirpod.com/ <http://twopeasandtheirpod.com>`_\n- `https://uitpaulineskeuken.nl/ <https://uitpaulineskeuken.nl>`_\n- `https://unsophisticook.com/ <https://unsophisticook.com/>`_\n- `https://usapears.org/ <https://usapears.org>`_\n- `https://www.valdemarsro.dk/ <https://www.valdemarsro.dk/>`_\n- `https://vanillaandbean.com/ <https://vanillaandbean.com>`_\n- `https://varecha.pravda.sk/ <https://varecha.pravda.sk>`_\n- `https://www.vegetarbloggen.no/ <https://www.vegetarbloggen.no/>`_\n- `https://vegolosi.it/ <https://vegolosi.it>`_\n- `https://vegrecipesofindia.com/ <https://www.vegrecipesofindia.com/>`_\n- `https://veroniquecloutier.com <https://veroniquecloutier.com>`_\n- `https://www.waitrose.com/ <https://www.waitrose.com/>`_\n- `https://watchwhatueat.com/ <https://watchwhatueat.com/>`_\n- `https://wearenotmartha.com/ <https://wearenotmartha.com/>`_\n- `https://wedishitup.com/ <https://wedishitup.com/>`_\n- `https://www.weightwatchers.com/ <https://www.weightwatchers.com/>`_ (*)\n- `https://www.wellplated.com/ <https://www.wellplated.com/>`_\n- `https://whatsgabycooking.com/ <https://whatsgabycooking.com>`_\n- `https://whole30.com/ <https://whole30.com/>`_\n- `https://www.wholefoodsmarket.com/ <https://www.wholefoodsmarket.com/>`_\n    - `.co.uk <https://www.wholefoodsmarket.co.uk/>`__\n- `https://www.williams-sonoma.com/ <https://www.williams-sonoma.com/>`_\n- `https://womensweeklyfood.com.au/ <https://womensweeklyfood.com.au/>`_\n- `https://woop.co.nz/ <https://woop.co.nz/>`_\n- `https://yemek.com/ <https://yemek.com>`_\n- `https://yummly.com/ <https://yummly.com>`_ (*)\n- `https://www.zaubertopf.de <https://www.zaubertopf.de>`_\n- `https://zeit.de/ (wochenmarkt) <https://www.zeit.de/zeit-magazin/wochenmarkt/index>`_\n- `https://zenbelly.com/ <https://zenbelly.com>`_\n\n(*) offline saved files only\n\n\nContribute\n----------\n\nIf you spot a design change (or something else) that makes the scraper unable to work for a given site - please fire an issue asap.\n\nIf you are programmer PRs with fixes are warmly welcomed and acknowledged with a virtual beer. You can find documentation on how to develop scrapers `here <https://github.com/hhursev/recipe-scrapers/blob/main/docs/README.md>`__.\n\n\nIf you want a scraper for a new site added\n------------------------------------------\n\n- Open an `Issue <https://github.com/hhursev/recipe-scraper/issues/new>`_ providing us the site name, as well as a recipe link from it.\n- You are a developer and want to code the scraper on your own:\n\n  - If `Schema is available <#faq>`_ on the site - `you can go like this. <https://github.com/hhursev/recipe-scrapers/pull/176>`_\n  - Otherwise, scrape the HTML - `like this <https://github.com/hhursev/recipe-scrapers/commit/ffee963d04>`_\n  - Generating a new scraper class:\n\n    .. code:: shell\n\n        python generate.py <ClassName> <URL>\n\n    - **ClassName**: The name of the new scraper class.\n    - **URL**: The URL of an example recipe from the target site. The content will be stored in ``test_data`` to be used with the test class.\n\n    You can find a more detailed guide `here <https://github.com/hhursev/recipe-scrapers/blob/main/docs/how-to-develop-scraper.md>`__.\n\n\nFor Devs / Contribute\n---------------------\n\nAssuming you have ``>=python3.9`` installed, navigate to the directory where you want this project to live in and drop these lines\n\n.. code:: shell\n\n    git clone git@github.com:hhursev/recipe-scrapers.git &&\n    cd recipe-scrapers &&\n    python -m venv .venv &&\n    source .venv/bin/activate &&\n    python -m pip install --upgrade pip &&\n    pip install -e \".[dev]\" &&\n    pip install pre-commit &&\n    pre-commit install &&\n    python -m unittest\n\nIn case you want to run a single unittest for a newly developed scraper\n\n.. code:: shell\n\n    python -m unittest -k <test_file_name>\n\n\nFAQ\n---\n**What if the recipe site I want to extract information from is not listed above?**\n\nYou can give it a try with the ``wild_mode`` option!\n\nIf there is Schema/Recipe available it will work just fine.\n\n.. code:: python\n\n    url = 'https://www.feastingathome.com/tomato-risotto/'\n    name = input('What is your name, risotto sampler?\\n')\n    html = requests.get(url, headers={\"User-Agent\": f\"Risotto Sampler {name}\"}).content\n    scraper = scrape_html(html, org_url=url, wild_mode=True)\n\n    scraper.host()\n    scraper.title()\n    scraper.total_time()\n    scraper.image()\n    scraper.ingredients()\n    scraper.ingredient_groups()\n    scraper.instructions()\n    scraper.instructions_list()\n    scraper.yields()\n    scraper.to_json()\n    scraper.links()\n    scraper.nutrients()  # not always available\n    scraper.canonical_url()  # not always available\n    scraper.equipment()  # not always available\n    scraper.cooking_method()  # not always available\n    scraper.keywords()  # not always available\n    scraper.dietary_restrictions() # not always available\n\nNotes:\n\n- ``scraper.links()`` returns a list of dictionaries containing all of the <a> tag attributes. The attribute names are the dictionary keys.\n\n\n**How do I know if a website has a Recipe Schema?**\n\nRun in python shell:\n\n.. code:: python\n\n    # first ensure you have the required packages:\n    # pip install \"recipe-scrapers[online]\"\n\n    from recipe_scrapers import scrape_html\n    scraper = scrape_html(html=None, org_url='<url of a recipe from the site>', online=True, wild_mode=True)\n    # if no error is raised - there's schema available:\n    scraper.title()\n    scraper.instructions()  # etc.\n\n\nSpecial thanks to:\n------------------\n\nAll the `contributors that helped improving <https://github.com/hhursev/recipe-scrapers/graphs/contributors>`_  the package. You are awesome!\n\n.. image:: https://contrib.rocks/image?repo=hhursev/recipe-scrapers\n   :target: https://github.com/hhursev/recipe-scrapers/graphs/contributors\n\n\nTest Data Notice\n----------------\n\nAll content in ``tests/test_data/`` is used for limited, non-commercial testing purposes and belongs to their respective copyright holders. See the ``tests/test_data/LICENSE.md`` for details. If you're a copyright holder with concerns, you can open an issue or contact us privately via the email in our PyPI page.\n\n\nExtra:\n------\n| You want to gather recipes data?\n| You have an idea you want to implement?\n| Check out `our \"Share a project\" wall <https://github.com/hhursev/recipe-scrapers/issues/9>`_ - it may save you time and spark ideas!\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Python package, scraping recipes from all over the internet",
    "version": "15.3.3",
    "project_urls": {
        "Homepage": "https://github.com/hhursev/recipe-scrapers/"
    },
    "split_keywords": [
        "python",
        " recipes",
        " scraper",
        " harvest",
        " recipe-scraper",
        " recipe-scrapers"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "06b6b697e5d53ce7fccfc6b1d1c91871e7c21557603c3bf097c4386a9f9d54ec",
                "md5": "317d334eaf2cf5e36389e3a3d8906c00",
                "sha256": "e3092190ff81d79992bb3fd373c6d1ac7dff5d8be033d219ff6eb46bff8a37d3"
            },
            "downloads": -1,
            "filename": "recipe_scrapers-15.3.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "317d334eaf2cf5e36389e3a3d8906c00",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 245992,
            "upload_time": "2024-12-14T20:19:28",
            "upload_time_iso_8601": "2024-12-14T20:19:28.236578Z",
            "url": "https://files.pythonhosted.org/packages/06/b6/b697e5d53ce7fccfc6b1d1c91871e7c21557603c3bf097c4386a9f9d54ec/recipe_scrapers-15.3.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7479601153905952716d9f2a6433ee40bcff951120daf4952f36d8c66426579e",
                "md5": "ab89c3b978c0aea8755bc2097e2646ff",
                "sha256": "9bd41de3da0769eae6fa8a211a99db630fd283873eae6b518f51d27836c034f9"
            },
            "downloads": -1,
            "filename": "recipe_scrapers-15.3.3.tar.gz",
            "has_sig": false,
            "md5_digest": "ab89c3b978c0aea8755bc2097e2646ff",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 132358,
            "upload_time": "2024-12-14T20:19:32",
            "upload_time_iso_8601": "2024-12-14T20:19:32.703456Z",
            "url": "https://files.pythonhosted.org/packages/74/79/601153905952716d9f2a6433ee40bcff951120daf4952f36d8c66426579e/recipe_scrapers-15.3.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-14 20:19:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hhursev",
    "github_project": "recipe-scrapers",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "recipe-scrapers"
}
        
Elapsed time: 0.41193s