Turning Recipes into Shopping Lists with Python

Ever find a cool recipe online, only to realize halfway through cooking that you forgot half the ingredients? I did — so I built this small tool to fix that.

👉 Simple Recipe Shoplist Crawler on GitHub

🧠 What It Does

This version of the tool takes a recipe webpage and performs the following:

  • Fetches the page and extracts the ingredient section(s).
  • Parses ingredient text (quantities, units, items) and normalizes them (e.g., “½ cup flour” → flour, 0.5, cup).
  • Aggregates ingredients across recipes so common items are merged (avoid buying the same thing twice).
  • Produces a structured shopping list in JSON/CSV format, ready to use or export.
  • Is designed to be easily extended: add new site‐specific parsing logic, output formats, integration hooks.

💡 Why I Built It

Cooking a few recipes a week and managing ingredient lists became a manual drag. Rather than keep copying/pasting and forgetting something, I decided to build something simple and open-source:

  • It gave me an excuse to play with Python and web scraping.
  • I wanted a tool I could reuse and adapt across recipe sites.
  • I’d love for others to fork it, add to it, and make it even better.

⚙️ How to Run It

Ready to try? Here’s how:

git clone https://github.com/fibanez6/ai-python-recipe-shoplist-crawler.git
cd simple-recipe-shoplist-crawler
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000

You’ll get a tidy shopping list as output. You can tweak the code to support your favorite recipe sites.

🚀 What’s Next

Here’s where I’m heading:

  • Add support for more recipe-site HTML structures (so the crawler works out-of-the-box for more domains).
  • Build a lightweight web or desktop UI so non-developers can use it easily.
  • Enhance the NLP: better fraction handling, scaling recipe amounts, smarter unit conversions.
  • Integrate with grocery/delivery APIs so your list could be sent directly to your shopping app.
  • Publish pre-built config modules for popular cooking sites to make setup even easier.

🤝 Want to Contribute?

If this sounds interesting:

  • Fork the repo and play around.
  • Open issues or send PRs for improvements.
  • Share how you’re using it — I’d love to see new ideas!
Check it on GitHub

That’s it — just a small side project I built because I wanted it. If you try it, let me know what you’d improve or add next!