Phantomjs, zum der Webseitenfunktion abzukratzen, funktionierte nicht

Ich verwende Phantomjs, um zu lernen, wie man eine Webseite kratzt. Bisher habe ich den folgenden Code unten entwickelt. Ich weiß, dass ich eine Verbindung zur Site herstellen kann, aber ich kann überhaupt keine Daten aus der Tabelle abrufen. bin ich auf dem richtigen Weg?

Mein Ziel ist es, Daten von der Tabelle auf @ zu kratzDie Seite? ˅. Ich verstehe auch, dass ich includeJs oder injectJs verwenden muss, um auf das Laden der Tabelle zu warten, da ich sonst eine leere HTML-Seite schaben würde. Ich versuche, diese Konzepte zusammenzustellen, aber ich stecke jetzt seit über 3 Tagen fest. Bitte gebe eine Anleitung.

var page = require('webpage').create();
console.log('Welcome to scraping...');

page.open('http://www.inc.com/inc5000/index.html', function(status) {
    page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
  if (status !== 'success') {
    console.log('Unable to access network');
  } else {
    var ua = page.evaluate(function() {
      var DATA = [];
      var res= document.getElementById((this).find('td')).eq(0).text();
      console.log(res); //**See output below for what is happening here**
        $('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); 
      console.log('Got into func');  
      //return document.getElementById('myagent').textContent;
    });
    console.log('Got out of function');
    console.log(ua);
  }
  phantom.exit();
  });

});

Die Ausgabe, die ich erhalte, ist:

Willkommen beim Schaben ...

ReferenceError: Variable kann nicht gefunden werden: winklig

http: //stage.inc.com/js/Inc5000ListApp.js? UPDATE1: 2
http: //www.inc.com/inc5000/index.html: 2485

TypeError: 'null' ist kein Objekt (Auswertung von 'document.getElementById (this.find (' td ')). Eq')

phantomjs: //webpage.evaluate (): 3 // was bedeutet das ??

phantomjs: //webpage.evaluate (): 20

phantomjs: //webpage.evaluate (): 20

Got out of function

Nul

Antworten auf die Frage(0)

Ihre Antwort auf die Frage