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