Using phantom.js to scrape data

Following on from this question, I am trying to scrape data using phantomjs, modifying a script from here:

My goal is to integrate a working function (see 2nd code snippet) into the script below in 1st code snippet. I have tried doing this but keep getting errors. Is there a way I can actually do the integration?

(note: using phantomjs because the site is an angular app where initial HTML doesn't contain any of the data I amlooking for, i.e.a headless web browser. So I need to load the page in memory, wait for angular to do its thing (a set delay of some sort), and then scrape the rendered DOM)

The errors (and output) I get when I execute my script (phantomjs scraping.js) are as follow:

console> SPR-ERROR: 103 - Invalid published date console> v6 ReferenceError: Can't find variable: angular

http://stage.inc.com/js/Inc5000ListApp.js?UPDATE1:2
http://www.inc.com/inc5000/index.html:2485
console> SPR-ERROR:103 - Invalid published date (date)
====================================================

Step "0"

====================================================
console>Reached scrapeData

console>

Seems like it is connecting to the desired site. How do I modify this script below to fit the extraction code at the bottom of this qn:

var page = new WebPage(),
    url = 'http://www.inc.com/inc5000/index.html',
    stepIndex = 0;

/**
 * From PhantomJS documentation:
 * This callback is invoked when there is a JavaScript console. The callback may accept up to three arguments: 
 * the string for the message, the line number, and the source identifier.
 */
page.onConsoleMessage = function (msg, line, source) {
    console.log('console> ' + msg);
};

/**
 * From PhantomJS documentation:
 * This callback is invoked when there is a JavaScript alert. The only argument passed to the callback is the string for the message.
 */
page.onAlert = function (msg) {
    console.log('alert!!> ' + msg);
};

// Callback is executed each time a page is loaded...
page.open(url, function (status) {
  if (status === 'success') {
    // State is initially empty. State is persisted between page loads and can be used for identifying which page we're on.
    console.log('============================================');
    console.log('Step "' + stepIndex + '"');
    console.log('============================================');

    // Inject jQuery for scraping (you need to save jquery-1.6.1.min.js in the same folder as this file)
    page.injectJs('jquery-1.6.1.min.js');

    // Our "event loop"
    if(!phantom.state){
      //initialize();
      scrapeData();
    } else {
      phantom.state();


     } 

            // Save screenshot for debugging purposes
            page.render("step" + stepIndex++ + ".png");
          }
        });
    function scrapeData(){ 
    page.evaluate(function() { 
    console.log('Reached scrapeData');

    var DATA = [];

        $('tr.ng-scope').each(function(){
            var $tds = $(this).find('td');

            DATA.push({
                rank:     $tds.eq(0).text(),
                company:  $tds.eq(1).text(),
                growth:   $tds.eq(2).text(),
                revenue:  $tds.eq(3).text(),
                industry: $tds.eq(4).text()
            });
        });

        console.log(DATA);
    });
    phantom.state = parseResults;
// scraping code here 

}
// Step 1
function initialize() {
  page.evaluate(function() {
    console.log('Searching...');
  });
  // Phantom state doesn't change between page reloads
  // We use the state to store the search result handler, ie. the next step
  phantom.state = parseResults; 
}

// Step 2
function parseResults() {
  page.evaluate(function() {
    $('#search-result a').each(function(index, link) {
      console.log($(link).attr('href'));
    })
    console.log('Parsed results');
  });
  // If there was a 3rd step we could point to another function
  // but we would have to reload the page for the callback to be called again
  phantom.exit(); 
}

I know this code below works in the console, but how I can integrate it with the code script above to successfully scrape data from multiple pages on the site:

request('http://www.inc.com/inc5000/index.html', function (error, response, html) {
        if(error || response.statusCode != 200) return;

        var $ = cheerio.load(html);
        var DATA = [];

        $('tr.ng-scope').each(function(){
            var $tds = $(this).find('td');

            DATA.push({
                rank:     $tds.eq(0).text(),
                company:  $tds.eq(1).text(),
                growth:   $tds.eq(2).text(),
                revenue:  $tds.eq(3).text(),
                industry: $tds.eq(4).text()
            });
        });

        console.log(DATA);
    });