Phantomjs para raspar função da página da web não está funcionando
Estou usando o phantomjs para aprender a raspar uma página da Web. Até agora desenvolvi o código a seguir. Sei que posso me conectar ao site, mas não consigo obter dados da tabela. Eu estou no caminho certo?
Meu objetivo é raspar dados da tabela emesta local. Também entendo que preciso usar includeJs ou injectJs para aguardar o carregamento da tabela; caso contrário, rasparia uma página html vazia. Estou tentando colocar esses conceitos juntos, mas estou preso há mais de 3 dias agora .. por favor, dê algumas orientações ..
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();
});
});
A saída que estou recebendo é:
Bem-vindo à raspagem ...
ReferenceError: Não foi possível encontrar a variável: angular
http://stage.inc.com/js/Inc5000ListApp.js?UPDATE1:2
http://www.inc.com/inc5000/index.html:2485
TypeError: 'null' não é um objeto (avaliando 'document.getElementById (this.find (' td ')). Eq')
phantomjs: //webpage.evaluate (): 3 // o que isso significa?
phantomjs: //webpage.evaluate (): 20
phantomjs: //webpage.evaluate (): 20
Saiu da função
nulo