Registry / data / recipe-scrapers

recipe-scrapers

JSON →
library15.11.0pypypi✓ verified 87d ago

A Python package for scraping recipe data from hundreds of websites. Provides a unified interface to extract structured data such as ingredients, instructions, cook times, and nutrition. Requires Python >=3.10. Current version: 15.11.0. Active development with frequent releases every few weeks.

pip install recipe-scrapers
INSTALL
IMPORT
SIG · RECIPE-SCRAPERS
R
recipe-scrapers
datapythonv15.11.0
Install
5.2s avg
Import
1462ms
Disk
47MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.9–3.13
musl
3.9–3.13
Install & Compatibility
Where this runs
tested against v15.11.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 1.554s · 48.8MB
glibc
py 3.10–3.95 runs
installs and imports cleanly · install 5.2s · import 1.370s · 49MB
47MB installed
● package 47MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

scrape_me
✓ from recipe_scrapers import scrape_me
✗ from recipe_scrapers.scraper import scrape_me
scrape_me is a top-level function, not from the scraper module.
AbstractScraper
✓ from recipe_scrapers import AbstractScraper
✗ from recipe_scrapers.abstract import AbstractScraper
AbstractScraper is exported from the package root for convenience.

Fetch and parse a recipe from a given URL. scrape_me returns a scraper object with methods like title(), ingredients(), instructions(), etc.

from recipe_scrapers import scrape_me url = 'https://www.allrecipes.com/recipe/12345/' scraper = scrape_me(url) print(scraper.title()) print(scraper.ingredients()) print(scraper.instructions())
Debug
Known issues
breakingPython 3.9 dropped as of v15.11.0. Must use Python >=3.10.
fix
Upgrade Python to 3.10 or higher.
affects: >=15.11.0
deprecatedThe method `total_time()` may be deprecated in favor of `cook_time()` and `prep_time()`. Check each scraper for support.
fix
Use `cook_time()` or `prep_time()` instead if available.
affects: >=15.0.0
gotchaNot all websites are supported. Trying an unsupported URL raises an exception. Use `scrape_me(url, wild_mode=True)` to attempt generic scraping.
fix
Check the list of supported sites in the docs or pass `wild_mode=True` as fallback.
affects: all
Errors
Common errors & fixes
AttributeError: module 'recipe_scrapers' has no attribute 'scrape_me'
Importing the module name with a hyphen (recipe-scrapers) instead of the correct package name (recipe_scrapers).
fix
Change import to: from recipe_scrapers import scrape_me
requests.exceptions.HTTPError: 403 Client Error
Some websites block automated requests. The scraper does not handle this gracefully.
fix
Pass a custom headers dict to scrape_me: scrape_me(url, headers={'User-Agent': 'Mozilla/5.0'})
ValueError: No recipe found at this URL
The URL does not correspond to a recipe page or the scraper cannot parse it.
fix
Ensure the URL is from a supported source. Use wild_mode=True for generic parsing.
Upgrade
Version history
15.11.0latest on PyPI · released Dec 10, 2025
Audit
Dependencies
beautifulsoup4requiredHTML parsing
requestsrequiredHTTP requests
lxmlrequiredXML parser
Agent activity
23 hits · last 30 days
node
22
OpenAI (training)
1
Resources
recipe-scrapers — pip install recipe-scrapers · libregistry