From 06028db9afa323b9f503d90c51c734b1912a193a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 21 Aug 2021 08:40:33 +0530 Subject: [PATCH] NYTimes Cooking by gourav --- recipes/nytimes_cooking.recipe | 39 ++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 recipes/nytimes_cooking.recipe diff --git a/recipes/nytimes_cooking.recipe b/recipes/nytimes_cooking.recipe new file mode 100644 index 0000000000..e780f57a0f --- /dev/null +++ b/recipes/nytimes_cooking.recipe @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe, classes + + +class NYTCooking(BasicNewsRecipe): + title = 'NY Times Cooking' + description = 'NY Times Cooking Magazine' + __author__ = 'gourav' + language = 'en_US' + encoding = 'utf-8' + oldest_article = 2 + max_articles_per_feed = 30 + keep_only_tags = [ + classes('recipe-title recipe-subhead recipe-intro recipe-instructions') + ] + remove_tags = [ + classes('recipe-details-share'), + dict(name='source'), + ] + + def parse_index(self): + url = 'https://cooking.nytimes.com/topics/what-to-cook-this-week' + soup = self.index_to_soup(url) + + articles = soup.find_all('div', class_='card-info-wrapper') + feed = [] + + for i in articles: + article = {} + article['url'] = i.find('a')['href'] + if article['url'].startswith('/'): + article['url'] = 'https://cooking.nytimes.com' + article['url'] + article['title'] = i.find('h3').text.strip() + author = i.find('p', class_='card-byline') + article['author'] = author.text if author is not None else 'Unknown' + feed.append(article) + + return [('Recipes', feed)]