使用PhantomJS后台web界面截圖


自動化截web頁面的圖


一、工具介紹:

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

  一句話,使用該工具可以在后台截web界面的圖。

二、下載安裝

  下載路徑

wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2

  ubuntu安裝

sudo apt-get install fontconfig

三、案例 

  我有的博客首頁添加了一個世界各國用戶訪問的小工具,想着記錄每天數據的變化,又不想手動操作,因此想到了它!

創建一個js文件,vim a.js,內容如下:

var page = require('webpage').create();
system = require('system');
//要打印的url地址
var address = system.args[1];
//存儲文件路徑和名稱
var outputPng = './image.png';
//設置長寬
page.viewportSize = { width: 1280, height: 800 };

page.open(address, function(status) {
    if(status !== 'success') {
        console.log('Unable to load the address!');
        phantom.exit();
    } else {
        //截圖的偏移和寬高  看下面的圖 會是以出截圖位置以及各參數位置
        page.clipRect = {
            top: 186,
            left: 101,
            width: 855,
            height: 207
        };
        //此文本可以通過phantomjs指令輸出到文件
        console.log("獲得的分類統計數據已保存至文件!");
        console.log("截圖中......");
        page.render(outputPng);
        console.log("截圖已保存對應路徑!");
        phantom.exit();
    }
});

  執行:

./phantomjs a.js  https:/url/zqj-blog/

【注意】

  若執行報錯

:~/bi/phantomjs/phantomjs-2.1.1-linux-x86_64$ ./bin/phantomjs examples/hello.js 
./bin/phantomjs: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory

請執行

sudo apt-get install libfontconfig

 

js文件中,page.clipRect里的四個參數指的內容看下圖:

使用以下參數:

 

得到的截圖是:

這個命令會在后台自動加載頁面的js,在內存中顯示出圖像,並截圖!

四、參考

https://www.2cto.com/kf/201708/669140.html


免責聲明!

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



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