利用phantomjs工具完成网页截图
1、PhantomJS是什么?
PhantomJS是一個基于webkit的JavaScript API。它使用QtWebKit作為它核心瀏覽器的功能,使用webkit來編譯解釋執(zhí)行JavaScript代碼。任何你可以在基于webkit瀏覽器做的事情,它都能做到。它不僅是個隱形的瀏覽器,提供了諸如CSS選擇器、支持Web標準、DOM操作、JSON、HTML5、Canvas、SVG等,同時也提供了處理文件I/O的操作,從而使你可以向操作系統(tǒng)讀寫文件等。PhantomJS的用處可謂非常廣泛,諸如網(wǎng)絡(luò)監(jiān)測、網(wǎng)頁截屏、無需瀏覽器的 Web 測試、頁面訪問自動化等。
2、PhantomJS的安裝
? ? ? 請參考?https://blog.csdn.net/hacker_lees/article/details/76972880
3、PhantomJS的使用?(本文主要講PhantomJS的截圖功能使用)
? ? ?首先聽它的名字就知道這個東西和javascript脫不了關(guān)系,需要創(chuàng)建一個js腳本來調(diào)用執(zhí)行它的API,貼圖解釋:
?舉例我要截圖百度首頁,那么在window下需要在dos執(zhí)行 :
?phantomjs.exe request.js "https://www.baidu.com" "44a63072-4a3b-4829-bc72-a5b9b1dca9fa.png"
兩個參數(shù)分別對應(yīng)上圖的param.url和param.pic,截圖成功保存
4、分享下完成過程中踩到的坑
? ? ?a.Linux(centos)下執(zhí)行如果報 cannot open shared object file之類的錯誤請用yum安裝服務(wù)
? ? ? ? ?yum install libXext libXrender fontconfig libfontconfig.so.1
? ? ?b.Linux下在phantomjs所在目錄執(zhí)行如果報找不到該命令之類的錯誤,命令前加上./,如:
? ? ? ? ./phantomjs.exe request.js "https://www.baidu.com" "44a63072-4a3b-4829-bc72-a5b9b1dca9fa.png"
? ? ?c.Linux下截好的圖中文字體亂碼不顯示請安裝服務(wù):
? ?yum install bitmap-fonts bitmap-fonts-cjk
? d.如果截圖頁面很長,有的圖片不顯示,八成是因為該圖片需要滾動條下拉觸發(fā)加載,有很多解決辦法,我用的是調(diào)大瀏覽器視圖并延遲截圖:
? ? ? ? ?page.viewportSize = {width:4800, height:24000};
? ? ? ? ?page.render(param.pic);
?? ??? ??? ??? ??? ?phantom.exit();
?? ??? ??? ??? ?}), 10*1000);
總結(jié)
以上是生活随笔為你收集整理的利用phantomjs工具完成网页截图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 八字算法,南方排八字专业程序 p
- 下一篇: php三行情书,文案得看看这些三行情书