2014-01-11 39 views
-1

使用CasperJS,我想要檢索YouTube視頻上的評論數量。返回null的YouTube評論的選擇器路徑

var casper = require('casper').create(); 

casper.start('https://youtube.com/watch?v=I1HpEzxYHxE', function() { 

    this.echo(this.getTitle()); // test to see if page loaded correctly 

    var comments = this.evaluate(function() { 
     return document.querySelector('div.DJa').innerText; 
    }); 

    this.echo(comments); 
}); 

casper.run(); 

的輸出是:

Android Eclipse Tutorial #1 - Building an App From Scratch - YouTube 
null 

這是YouTube視頻的HTML源文件的截圖:

我期待得到innerText的選擇器div.DJa

這裏是一個選擇的屬性列表截圖:

這份名單說,innerText屬性保存價值"ALL COMMENTS (49)",所以這是我的期望輸出,而不是null

任何人都可以解釋爲什麼輸出是null和/或如何得到我的預期輸出?

回答

0

你可以試試下面的代碼:

casper.then(function(){ 
    onapp_name = this.evaluate(function() { 
     return __utils__.findOne('#LXCType_name').getAttribute('value'); 
    }); 
}); 

和回聲onapp_name變量...

Documentation

+0

它不工作,我不反正明白。 –

+0

是的,我回答後在這個問題上花了1個小時。上面的代碼不起作用。但我認爲這個問題是與iframe標記(你的div在這個iframe中)。 看到這個[問題](http://stackoverflow.com/questions/12150194/how-do-i-access-an-iframe-from-casperjs) – Satevg

+0

如果你可以使用你建議的鏈接來創建一個可行的答案,我會給你+25。我現在沒有時間研究這個問題。 –