Skip to content

hooshid/rottentomatoes-scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rottentomatoes Scraper

Build Status Total Downloads Latest Stable Version License

Using this Rottentomatoes API, you are able to search, browse and extract data of Movies, Series on rottentomatoes.com.

Install

This library scrapes rottentomatoes.com so changes their site can cause parts of this library to fail. You will probably need to update a few times a year.

Requirements

  • PHP >= 7.3
  • PHP cURL extension

Install via composer

$ composer require hooshid/rottentomatoes-scraper

Run examples

The example gives you a quick demo to make sure everything's working, some sample code and lets you easily see some available data.

From the example folder in the root of this repository start up php's inbuilt webserver and browse to http://localhost:8000

php -S localhost:8000

Examples

Get movie/series data

Movie: The Matrix (1999) / URL: https://www.rottentomatoes.com/m/matrix

$rottentomatoes = new Hooshid\RottentomatoesScraper\Rottentomatoes();
$extract = $rottentomatoes->extract("/m/matrix");
$result = $extract['result'];
$error = $extract['error'];

// get all available data as json
echo json_encode($extract);

in above example we first create a new obj from Rottentomatoes() class, then we call extract method and give the rottentomatoes.com url in first param.

if everything ok, result key filled and if not, the error key filled with error occurred

Tv Series: Game of Thrones (2011-2019) / URL: https://www.rottentomatoes.com/tv/game_of_thrones

$rottentomatoes = new Hooshid\RottentomatoesScraper\Rottentomatoes();
$extract = $rottentomatoes->extract("/tv/game_of_thrones");
$result = $extract['result'];
$error = $extract['error'];

if ($error) {
    echo $error;
} else {
    echo $result['title']; // movie/series title
    echo $result['thumbnail']; // Poster thumbnail
    echo $result['summary']; // Summary
    
    echo $result['score']; // Score
    echo number_format($result['votes']); // Votes
    echo $result['user_score']; // User Score
    echo number_format($result['user_votes']); // User Votes
}

you must always catch error first and get results.

NOTE: you can pass full url of Rottentomatoes or just path of page

extract("https://www.rottentomatoes.com/m/matrix");
extract("/m/matrix");

the result same for both extract methods!

Search

$rottentomatoes = new Hooshid\RottentomatoesScraper\Rottentomatoes();
$result = $rottentomatoes->search("The Matrix", "movie");

if($result['result']) {
    foreach ($result['result'] as $row) {
        echo $row['thumbnail'];
        echo $row['title'];
        echo $row['full_url'];
        echo $row['title']; 
        echo $row['year'];
        echo $row['score']; 
        echo $row['user_score']; 
        echo $row['type'];
    }
} else {
    echo "Not found any result!";
}

search method always return result key, and you just need to looped and used. search method have two param, first the title of movie or series to search and second the type, type just can be movie or tv.

Celebrity

$rottentomatoes = new Hooshid\RottentomatoesScraper\Rottentomatoes();
$result = $rottentomatoes->celebrity("johnny_depp");

if($result['result']) {
    echo $result['result']['name'];
    echo $result['result']['full_url'];
    echo $result['result']['url_slug'];
    echo $result['result']['thumbnail'];
    echo $result['result']['bio'];
    // Movies : array
    foreach ($result['result']['movies'] as $row) {
        echo $row['title'];
        echo $row['url'];
        echo $row['year'];
        echo $row['tomatometer'];
        echo $row['audiencescore'];
    }
    // Series : array
    foreach ($result['result']['series'] as $row) {
        echo $row['title'];
        echo $row['url'];
        echo $row['year'];
        echo $row['tomatometer'];
        echo $row['audiencescore'];
    }
} else {
    echo "Not found!";
}

Full examples

just open the example folder, we put all examples and methods demo for you in there!

Related projects

License

The MIT License (MIT). Please see License File for more information.