This Node.js package fetches Rotten Tomatoes audience reviews (movies and TV shows) by scraping pages using cheerio
and node-fetch
. Notable features such as:
- Search movie or TV show titles
- Fetch whole audience reviews or by defined value
- Compiled from Typescript to CommonJS and ES modules
- Typescript declaration file available
Note that this package doesn't use official packages or API endpoints provided by RT.
-
Using
npm
npm install rotten-reviews
-
Using
yarn
yarn add rotten-reviews
-
Script
// using require (commonjs) const { searchByQuery } = require('rotten-reviews') // using import (es module) import { searchByQuery } from 'rotten-reviews' searchByQuery('venom').then(results => { console.log(JSON.stringify(results, null, 2)) })
-
Output (truncated, fetched on December 20, 2018)
[ { "title": "Venom", "year": 2018, "type": "m", "slug": "m/venom_2018" }, { "title": "Venom", "year": 2016, "type": "m", "slug": "m/venom" }, ... ]
-
Script
// using require (commonjs) const { scrapeReviews } = require('rotten-reviews') // using import (es module) import { scrapeReviews } from 'rotten-reviews' scrapeReviews('m/venom_2018').then(results => { console.log(JSON.stringify(results, null, 2)) })
-
Output (truncated, fetched on December 20, 2018)
[ { "reviewer": "Cory L", "date": "December 19, 2018", "stars": 4, "review": "After watching the movie I gotta say it was good. It doesn't need spider Man though I would love to see that interaction. I am looking forward to seeing a sequel." }, { "reviewer": "Shawn R", "date": "December 19, 2018", "stars": 4, "review": "Critics be damned, I liked it. Lots of action, and it doesn't take itself too seriously. Venom was given a bit of personality rather than being a glorified sticky suit." }, ... ]
Starting from version 2, rotten-reviews
does not include any runnables. Instead, we made rotten-reviews-cli
which is a CLI wrapper for rotten-reviews
.
Powered with Zeit Now, we created a lambda deployment that you can consume to search and scrape on rotten-lambda.now.sh
using these queries:
q
to search titles (e.g.spider verse
)s
to scrape reviews using title slugs obtained from search (e.g.m/venom_2018
)c
to define how many to scrape (works only withs
)
Example queries:
rotten-lambda.now.sh/?q=spider%20verse
to search titlesrotten-lambda.now.sh/?s=m/venom_2018
to scrape reviewsrotten-lambda.now.sh/?s=m/venom_2018&c=3
to scrape only 3 first reviews
You can view the source code for the deployment on the demo directory or on the deployment source page.
Haven't done this part. Do submit a pull request if you want to contribute.
murf
- Metacritic Movie user review fetcher
MIT