抓取视频时长 - casperjs
Scraping video duration - casperjs
我目前正在尝试借助 casperjs 抓取视频时长。该视频位于 div id cne-player
中。持续时间值在页面加载后立即显示,因此我发现 casperjs 是完成这项工作的最佳工具。在持续时间内进行抓取时,我得到一个空值。下面是 SITE html 基础设施的一个片段。检索视频持续时间的方式或方法是什么?
JS
var casper = require('casper').create({}),durations;
function getDuration() {
var element = document.querySelectorAll('.vjs-control');
return Array.prototype.map.call(element, function(e) {
result = e.textContent;
return result.trim();
});
}
casper.start('http://video.wired.com/watch/battle-damage-iphone-6-plus-vs-galaxy-note-4');
casper.then(function() {
durations = this.evaluate(getDuration);
});
casper.run( this.echo(durations) );
HTML
<div id="cne-player">
<div class="vjs-control-bar">
<div class="vjs-remaining-time vjs-time-controls vjs-control">
<div class="vjs-remaining-time-display" aria-live="off">
<span class="vjs-control-text">Remaining Time </span>
-5:08
</div>
</div>
</div>
</div>
截图
PhantomJS (1.x & 2) does not support the <video>
element.加控件的JavaScript大概检测到了这个,没有加任何控件,因为视频不能用。
您将不得不寻找另一种方法来抓取视频时长。
我目前正在尝试借助 casperjs 抓取视频时长。该视频位于 div id cne-player
中。持续时间值在页面加载后立即显示,因此我发现 casperjs 是完成这项工作的最佳工具。在持续时间内进行抓取时,我得到一个空值。下面是 SITE html 基础设施的一个片段。检索视频持续时间的方式或方法是什么?
JS
var casper = require('casper').create({}),durations;
function getDuration() {
var element = document.querySelectorAll('.vjs-control');
return Array.prototype.map.call(element, function(e) {
result = e.textContent;
return result.trim();
});
}
casper.start('http://video.wired.com/watch/battle-damage-iphone-6-plus-vs-galaxy-note-4');
casper.then(function() {
durations = this.evaluate(getDuration);
});
casper.run( this.echo(durations) );
HTML
<div id="cne-player">
<div class="vjs-control-bar">
<div class="vjs-remaining-time vjs-time-controls vjs-control">
<div class="vjs-remaining-time-display" aria-live="off">
<span class="vjs-control-text">Remaining Time </span>
-5:08
</div>
</div>
</div>
</div>
截图
PhantomJS (1.x & 2) does not support the <video>
element.加控件的JavaScript大概检测到了这个,没有加任何控件,因为视频不能用。
您将不得不寻找另一种方法来抓取视频时长。