PhantomJS從入門到放棄

https://blog.csdn.net/libsyc/article/details/78199850

PhantomJS是什么?

PhantomJS是一個基于webkit的JavaScript API。它使用QtWebKit作為它核心瀏覽器的功能,使用webkit來編譯解釋執(zhí)行JavaScript代碼。任何你可以在基于webkit瀏覽器做的事情,它都能做到。它不僅是個隱形的瀏覽器,提供了諸如CSS選擇器、支持Web標準、DOM操作、JSON、HTML5、Canvas、SVG等,同時也提供了處理文件I/O的操作,從而使你可以向操作系統(tǒng)讀寫文件等。PhantomJS的用處可謂非常廣泛,諸如網絡監(jiān)測、網頁截屏、無需瀏覽器的 Web 測試、頁面訪問自動化等。

PhantomJS官方地址:http://phantomjs.org/。
  PhantomJS官方API:http://phantomjs.org/api/
  PhantomJS官方示例:http://phantomjs.org/examples/。
  PhantomJS GitHub:https://github.com/ariya/phantomjs/

PhantomJS下載與安裝

大家可根據自己的系統(tǒng)運行環(huán)境來安裝相應的版本. 這里我以Window7來作演示.


image.png

下載完成后解壓文件,建議為方便使用,單獨放在一個文件夾里,如放在D:\workspace\phantomjs里。

到這里,你已經成功下載安裝好PhantomJS了。那么,打開D:\workspace\phantomjs\bin文件夾,雙擊運行phantomjs.exe,出現如下界面,那么你就可以運行JS代碼了。


image.png

可以考慮將D:\workspace\phantomjs\bin路徑配置到環(huán)境變量中.方便日后使用

第一個PhantomJS小程序

// demo.js
var page = require('webpage').create();
phantom.cutputEncoding = 'gbk';
page.open("http://www.itdecent.cn", function(status) {
  if(status === "success") {
    page.render("jianshu.png");
  } else {
    console.log("Page failed to load.");
  };
phantom.exit();
});

然后在cmd命令行中, 切換到demo.js所有目錄運行demo.js.

image.png

demo.js會將抓取到頁面的截圖保存到當前頁面
如上圖所示的 jianshu.png.

PhantomJS核心API

  • webpage:它的作用主要是提供了一套可以訪問和操作web文檔的核心方法,包括操作DOM、事件捕獲、用戶事件模擬等等。
  • system:該模塊提供了一些與操作系統(tǒng)相關的接口,例如訪問操作系統(tǒng)信息、訪問系統(tǒng)環(huán)境變量、接受命令行參數等等與程序執(zhí)行相關的系統(tǒng)信息。
  • fs:即FileSystem。熟悉NodeJS的朋友都知道,NodeJS也內建了相關的核心模塊。fs提供了執(zhí)行文件I/O操作的標準接口,如讀寫文件、刪除文件等。它使得你持久化一些文件(如logfile等)變得非常容易。
  • webserver:如其名字一樣,你可以基于它來實現自己的webserver,用來處理請求并且執(zhí)行PhantomJS代碼等。

其它一些配置信息,執(zhí)行PhantomJS的命令格式如下

phantomjs [switches] [options] [script] [argument [argument [...]]]

打開debug模式(該模式用于開發(fā),可提供必要提示信息):

phantomjs --debug=yes demo.js

設置cookie路徑:

phantomjs --cookie-file=cookie.txt demo.js

操作page content

事件處理

抓取頁面

文件相關操作

模塊化

與jQuery等第三方結合

其它

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容