Phantomjs 一些簡單實用


  Phantomjs是一個基於webkit的服務器端JavaScirpt API。它全面支持web而不需要瀏覽器支持,並且原生支持web的各種標准:DOM處理,CSS選擇器,JSON,Canvas和SVG。可以用於頁面自動化、網絡檢測、網頁截屏、無界面測試等。

  1、使用

  新建一個hi.js文件,里面寫入js腳本,並且以phantom.exit();結尾, 執行DOS命令:phantomjs hi.js即可執行文件內腳本內容。

  2、參數處理

  參考phantomjs安裝目錄下examples中的arguments.js,DOS命令:phantomjs examples/arguments.js foo bar baz

  它將輸出 :

    0: foo
    1: bar
    2: baz

  3、頁面截圖

  參考代碼(將請求www.baidu.com網站並將截圖保存成baidu.png):

var page = require('webpage').create();
page.open('http://www.baidu.com', function () {
  page.render('html/baidu.png');
  phantom.exit();
});

  4、Cookie處理

var page = require('webpage').create();

var fs = require('fs');
phantom.addCookie({
  'name' : 'province',
  'value': 'provinceName%22%3A%22%u5317%u4EAC',
  'domain': 'baidu.com'
});
phantom.addCookie({
  'name' : 'addrDetail',
  'value': '%7B%22detail%22%3A%22%u5317%u4EAC%22%2C%22detailId%22%3A2%2C%22detailCode%22%3A110000%7D',
  'domain': 'baidu.com'
});
page.open('http://www.baidu.com', function(status){
  if(status !== 'success'){
    console.log('Unable to post!');
  }else{ // 將頁面保存成本地文件,並將所有script腳本替換為空字符,
    fs.write('html/baidu.html',page.content.replace(/<script\b[^>]*>([\s\S]*?)<\/script>/gm,""),'w');
  }
  phantom.exit();
});

  5、文件處理

var filePath = 'test.js';//文件路徑
  var fs = require("fs");
  //判斷文件是否存在,是文件還是文件夾
  if( fs.exists(filePath) && fs.isFile(filePath) ) {
    var ins = fs.open(filePath, 'r');//打開文件
    while(!ins.atEnd()) {//循環讀取文件內容
    var buffer = ins.readLine();//一行行的讀取
    console.log(buffer);
  }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM