/recipe-data-scraper

library for scraping websites for recipe data

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Build Status Coverage Status

A node library that takes a given url and scrapes that webpage for recipe data. This library supports websites that utilize either microdata or JSON-LD. The function returns a promise where on success will return the recipe and on fail will throw an error with the message: 'Could not find recipe data'

npm install recipe-data-scraper

Example Usage:

import recipeDataScraper from  'recipe-data-scraper';

async function (...) {
  try {
    // pass a full url to a page that contains a recipe
    const recipe = await recipeDataScraper(url);
    res.json({ recipe });
  } catch (error) {
    res.status(500).json({ message: err.message });
  }
}

Or:

import recipeDataScraper from 'recipe-data-scraper';

recipeDataScraper(url)
  .then((recipe) => res.json({ recipe }))
  .catch((err) => res.status(500).json({ message: err.message }));

Recipe Model:

property type
url string
name string
image string
description string
cookTime string
cookTimeOriginalFormat string
prepTime string
prepTimeOriginalFormat string
totalTime string
totalTimeOriginalFormat string
recipeYield string
recipeIngredients array of strings
recipeInstructions array of strings
recipeCategories array of strings
recipeCuisines array of strings
recipeTypes array of strings
keywords array of strings

CLI:

If you want to try this library without a UI, you can clone it locally and run it via the command line.

git clone git@github.com:thelifenadine/recipe-data-scraper.git
npm install
npm run test-url