無頭瀏覽器是什麼?它有什麼用?

蠟筆小新愛媽媽


什麼是無頭瀏覽器

平時我們上網查閱信息、觀看視頻等活動,一般都是通過瀏覽器完成的,IE、chrome、火狐等都是我們經常使用的瀏覽器,它們都擁有非常好用的可視化操作界面,配合鼠標就可以進行網上活動。

而無頭瀏覽器也叫做無界面瀏覽器,它可以運行在服務器端,也具有普通瀏覽器的能力,只是它沒有界面,

常見的框架有Puppeteer、Phantomjs等

無頭瀏覽器的特點

1、使用方式

我們以Phantomjs為例,既可以以cli方式使用,也可以在代碼中require進去,它甚至可以提供一個類似於node那樣的REPL環境。

2、加載網絡資源

既然是瀏覽器,加載網絡資源顯然是其基本的能力,resourceReceived和resourceRequested這兩個回調函數可以監控加載的資源,利用它們就可以做一些網絡監控。既然能獲取網頁的內容,那麼就可以用來做爬蟲!

3、截圖

既然是無界面的,那如果我們想看加載的頁面是什麼樣子的,怎麼辦?它提供了截圖功能,使用render方法就可以生成頁面快照,還提供了設置網頁大小等功能。

4、插入外部資源

它可以向頁面中插入外部資源,比如插入一個js,這一點上比較像chrome插件。

5、生成自定義網頁

它既能獲取人家的網頁,同時也能生成自己的網頁,設置content屬性就行。

6、提供document和window對象

在服務器中是不存在document和window對象的,但是Phantomjs提供了這兩個變量。

7、操作頁面

既然Phantomjs提供了document和window這兩大對象,那麼我們就可以像在普通瀏覽器裡面一樣使用它們的方法,比如操作dom元素、發送dom事件等。

8、測試

Phantomjs本身並不是測試框架,但是它可以配合jasmine等測試框架進行自動化測試。


喜歡我的回答就關注我吧,有問題可以發表評論,我們一起學習,共同成長!


做前端的蝸牛


無頭就是headless 的中文,所謂無頭瀏覽器就是沒有用戶界面的瀏覽器。

它可以運行在服務器端,通過命令行的方式調用,比如需要截取任意網站的截圖,網址由用戶輸入,那就需要在服務器端裝一個headless瀏覽器,可以命令調用來截圖。

除了截圖,還能操作DOM,做一些爬蟲的事情,在服務器端完成自動化操作。

常用的有三個:Selenium,PhantomJS,Chrome-headless 。

使用舉例:

/opt/google/chrome/chrome --headless --disable-gpu --screenshot http://baidu.com

這樣就實現了截取百度這個網站的頁面。

更復雜的操作就要看手冊了


分享到:


相關文章: