2013-09-22 36 views

回答

2

爲了簡單起見,查看CasperJS作爲一種方法來獲取數據&在另一種語言後處理。我會選擇#1選項 - 以JSON格式獲取數據,並將其保存到文件中以便稍後執行。

要做到這一點,您可以使用PhantomJS提供的File System API。您也可以將它與CasperJS's cli interface耦合以允許您將參數傳遞到腳本中(例如,要寫入的臨時文件)。

你的腳本來處理這一切看起來像:

  1. 獲得(在Linux系統上mktemp)臨時文件的路徑。
  2. 調用您的CasperJS腳本,將該臨時文件路徑作爲參數傳入。
  3. 獲取您的數據,使用File System API將其寫入該文件,然後退出。
  4. 閱讀文件,使用它(保存到數據庫等),刪除臨時文件。
5

我只是用第二種情況:

第一:獲得存儲在globalInfo變量的信息

var globalInfo; 
casper.thenOpen("www.targetpage.cl/valuableInfo", function() { 
    globalInfo = this.evaluate(function(){ 
     var domInfo = {}; 
     domInfo.title = "this is the info"; 
     domInfo.body = "scrap in the dom for info"; 
     return domInfo; 
    }); 
}); 

二:訪問的網頁存儲所捕獲的數據

casper.then(function(){ 
    casper.thenOpen("www.mipage.com/saveIntheDBonPost.php", { 
     method: 'post', 
     data:{    
      'title': ''+globalInfo.title, 
      'body': ''+globalInfo.body 
     } 
    }); 
}); 

www.mipage.com/saveIntheDBonPost.php取參數$_POST中的數據並將其存儲到數據庫。