Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
157 lines (112 sloc) 4.77 KB

rotten-reviews

Scrape audience reviews from Rotten Tomatoes πŸ…

NPM version NPM download count Greenkeeper badge Join the community on Spectrum

Rotten GIF

Description

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.

Usage

Adding to your project

  • Using npm

    npm install rotten-reviews
  • Using yarn

    yarn add rotten-reviews

Search titles using searchByQuery

  • 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"
      },
      ...
    ]

Fetch reviews using scrapeReviews

  • 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."
      },
      ...
    ]

CLI usage

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.

Lambda Deployment

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 with s)

Example queries:

You can view the source code for the deployment on the demo directory or on the deployment source page.

API

Haven't done this part. Do submit a pull request if you want to contribute.

Related

License

MIT

You can’t perform that action at this time.