2013-02-18 20 views
0

我有一個小問題,我是casperjs的新手,所以我想知道casper是否可以與我當前的php腳本一起工作,這些腳本通過我的數據庫查詢結果循環。如何使用php在casperjs中使用保存在數據庫中的url作爲源url的源代碼?

<?php 
$urls = query url database 

foreach($url as $url){ 
    then I send an execute command to casperjs. 
} 
?> 

然後,這裏是我想要發送的環形url的js代碼。

var casper = require('casper').create({ 
viewportSize: { 
    width: 1024, 
    height: 768 
} 
}); 

casper.start(**URL from PHP HERE**, function() { 
this.capture('shy.png', { 
    top: 0, 
    left: 0, 
    width: 1024, 
    height: 1000 
}); 
}); 


casper.run(); 

我的問題是我如何發送帶有$ url的命令作爲casperjs的url源值?

我想爲每個提供的網址製作截圖。

回答

0

可以經由殼命令將URL傳遞到casperjs過程:

CasperJS CLI commands

例如casperjs --crawlurl = http://example.com

然後,你可以調用從PHP的casperjs過程喜歡的東西了shell_exec:

shell_exec

注意,對於正常的服務器供應商,他們可能會阻止使用了shell_exec的。

+0

感謝這似乎對我有所作爲,我會嘗試並找回你。 – user2075354 2013-02-19 07:28:58

0

你可以用php腳本在標籤中回覆url。

<?php 
$urls = do_query(); 
foreach($urls as $url){ 
    echo "<a href=\"$url\"">$url</a><br />; 
} 
?> 

進樣的jQuery你casperjs。然後使用casperjs evaluate()和所有鏈接上的jQuery選擇器重新返回所有鏈接。

var links = this.evaluate(function() { 

    var $ = jQuery; // map jQuery to $ 

    var links = []; 

    $('a').each(function() { 

     links.concat($(this).attr('href')); 

    }); 

    return links; 

}); 

然後通過鏈接循環並捕獲它們。

祝你好運!

相關問題