Windows小技巧 -- Chrome瀏覽器中頁面保存技巧

本文主要以百度首頁爲例,記錄Chrome瀏覽器中,保存頁面的多種方式(涉及一些Chrome的“小技巧”),涉及插件使用請自行嘗試,本文僅對不使用插件的情況下保存頁面的不同處理方法做簡單介紹。

系統環境:Windows10、Chrome 70.0.3538.110(正式版本) (64 位).

保存離線頁面

說到頁面離線保存,首先想到的就是右鍵保存(Ctrl + S),這樣的方式保存會把當前頁面的資源保存下來,並放到一個目錄下面,大致效果如下:

離線保存頁面

在想要編輯頁面源碼等情況下,可以使用此方法,如果只想獲取單個離線頁面文件用來離線查看,則可以嘗試保存當前頁面爲MHTML文檔,可以使用插件(Save As MHTSave As MHTML 等) 或Chrome原生支持來完成此功能。

Chrome瀏覽器保存MHTML格式頁面

很多瀏覽器(IE 5.0+、Opera 9.0+、Chrome等)都支持存儲MHTML格式頁面,大多不支持的瀏覽器,也有對應的插件可以處理。

在Chrome中,要保存MHTML格式頁面,需要在Chrome的實驗×××設置中開啓。

首先,在Chrome瀏覽器的地址欄輸入 chrome://flags ,可以進入Chrome的實驗×××設置頁面

Chrome flags

在頁面的搜索框內輸入 mhtml ,找到 Save Page as MHTML 項(或直接在地址欄輸入 chrome://flags/#save-page-as-mhtml),將該項設置爲 Enabled ,然後點擊底部提示中的 RELAUNCH NOW 按鈕重啓瀏覽器,使修改生效。

Save Page as MHTML

重啓瀏覽器後,在需要保存的頁面中,右鍵,選擇另存爲(或快捷鍵 Ctrl + S),彈出的另存爲窗口,保存類型選擇 網頁(單個文件)

Chrome保存MHTML格式頁面

附:IE保存MHT格式頁面

MHTML(維基百科 | 百度百科),網頁歸檔,又稱單一檔案網頁或網頁封存檔案,可以將一個多附件網頁保存爲單一文檔,文檔擴展名爲 .mht.mhtml。IE瀏覽器支持保存 .mht 文件,下面做簡單介紹。

IE瀏覽器中打開需要保存的百度首頁頁面鏈接,然後右鍵保存(Ctrl + S),出現的保存窗口中,選擇保存類型 *.mht

IE保存mht格式頁面

此時可以看到一個百度的MHT文件,文本編輯器打開後,可以看到類似下面的代碼:

百度 MHT離線文件

這裏可以看到MHTML文檔是基於超文本標記語言的,裏面可以看到經過處理的頁面代碼。


保存PDF頁面

Chrome中PDF格式頁面保存,可以通過 PrintFriendly & PDF (有Chrome插件)等在線處理服務或使用Chrome插件(Save As PDF)實現,也可以通過打印來實現。

Chrome打印預覽中保存頁面PDF

在想保存的頁面中,快捷鍵 Ctrl + P (或右鍵菜單 -> 打印(p)...),打開頁面的打印瀏覽界面

頁面打印預覽

此時可以看到站點的打印預覽效果(默認黑白顯示),在左側選項中找到 目標打印機 -> 更改... ,在彈出的選擇界面中,找到 另存爲 PDF ,雙擊即可

頁面打印預覽

此時就可以看到站點的彩色版預覽效果,點擊左側的 保存 按鈕即可將站點存儲爲PDF格式。


保存圖片頁面

部分情況下,可能會需要截取頁面,有時僅需要截取部分內容,這通過普通的截圖工具即可完成,如QQ截取、微信截圖、Windows自帶截圖工具等等;而有時可能需要截取頁面長圖,這也可以通過工具來實現,如FastStone Capture、Chrome插件(FireShot、Full Page Screen Capture)等。這裏簡單介紹 FastStone Capture 和Chrome截圖方法,其他方式不贅述。

截圖工具實現圖片頁面保存

打開工具 FastStone Capture ,選擇 捕捉滾動窗口 按鈕,則可以進入長圖截圖窗口

FastStone Capture 截取頁面長圖

FastStone Capture的捕捉滾動窗口,可以支持自動滾動窗口及自定義滾動窗口,可以根據需要選擇,以達到截取所需內容的目的(自定義滾動截圖不太好使,不容易把控結束時間,截取的圖片可能需要再次編輯)

Chrome瀏覽器命令行菜單實現圖片頁面保存

在Chrome瀏覽器的開發者工具中(devtools),也提供了類似主流編輯器(Sublime Text, Atom, Visual Studio Code等)中的命令行菜單,通常使用 Ctrl + Shift + P ( Mac 上是 Cmd + Shift + P) 。如Sublime Text的命令行菜單:

Sublime Text 命令行菜單

使用Sublime Text的朋友應該很熟悉這個了,而命令行菜單帶來的遍歷是不言而喻的。

在Chrome瀏覽器中,首先 F12 打開 DevTools 開發者工具,然後在DevTools中使用快捷鍵 Ctrl + Shift + P ,就可以打開Chrome的命令行菜單:

Chrome 命令行菜單

在命令行菜單中,輸入 capture 就可以看到有如下選項

Chrome命令行菜單 Capture

這裏可以看到,Chrome命令行菜單提供了三個用於界面捕獲的命令

  • Capture full size screenshot - 截取整個站點(長圖)
  • Capture node screenshot - 截取選擇的DOM節點
  • Capture screenshot - 截取視圖窗口顯示的部分

在命令行內輸入對應的命令,即可完成截圖。

附:Chrome瀏覽器站點移動端視圖截圖

上面介紹了截取站點方法,這裏額外說下,想截取站點在不同像素顯示下響應顯示時,截取類似移動端長圖的方法。

同樣在Chrome瀏覽器中,打開DevTools,然後點擊按鈕,點擊 toggle device toolbar(切換設備工具欄) ,可以看到類似如下效果:

打開切換設備工具欄

在這個工具欄中,可以通過切換不同的設備(不同的分辨率),來查看站點在不同的分辨率下的顯示情況,可以很好的輔助站點的響應式開發工作。在這個視圖中,可以通過點擊頂部菜單項最右邊的三個點,來打開菜單,裏面有截取屏幕的選項,如下:

移動端視圖截圖


Headless Chrome模式完成頁面截圖及轉存PDF

Headless Chrome is shipping in Chrome 59. It's a way to run the Chrome browser in a headless environment. Essentially, running Chrome without chrome! It brings all modern web platform features provided by Chromium and the Blink rendering engine to the command line.

Chrome 59以上版本支持Headless Chrome,Headless Chrome是可以命令行模式運行Chromium和Blink渲染引擎提供功能。可以在無UI窗口的情況下,完成很多瀏覽器的操作,是自動測試和服務器環境的絕佳工具。更多內容參看官方說明

Headless Chrome 保存頁面

管理員模式運行命令行窗口,使用 cd 命令進入Chrome瀏覽器安裝目錄,輸入類似如下命令:

chrome --headless --disable-gpu --dump-dom https://www.baidu.com

測試了下,好像沒有效果,具體原因不清楚。。。有知道的朋友,希望可以不吝賜教!!!

Headless Chrome 保存頁面PDF

管理員模式運行命令行窗口,使用 cd 命令進入Chrome瀏覽器安裝目錄,輸入類似如下命令:

chrome --headless --disable-gpu --print-to-pdf='存儲路徑\文件名稱' https://www.baidu.com

Headless Chrome 保存頁面PDF

注意,此處如果不給存儲路徑和文件名稱,則保存的pdf可以在Chrome瀏覽器安裝目錄下對應版本號的目錄文件下,文件名稱爲 output.pdf

Headless Chrome保存PDF默認存儲位置及名稱

Headless Chrome 頁面截圖

管理員模式運行命令行窗口,使用 cd 命令進入Chrome瀏覽器安裝目錄,輸入類似如下命令:

chrome --headless --disable-gpu --screenshot='存儲路徑\文件名稱' https://www.baidu.com

## 設置圖片大小(尺寸大小好像沒有用,具體作用自行研究)
chrome --headless --disable-gpu --screenshot='存儲路徑\文件名稱' --window-size=寬,高 https://www.baidu.com

Headless Chrome保存頁面截圖默認存儲位置及名稱

注意,此處如果不給存儲路徑和文件名稱,則保存的pdf可以在Chrome瀏覽器安裝目錄下對應版本號的目錄文件下,文件名稱爲 output.pdf

Headless Chrome保存頁面截圖默認存儲位置及名稱

Puppeteer

Chrome官方推出的Puppeteer(封裝了Headless Chrome的Node庫),可以完成瀏覽器中手動執行的大多數操作:

  • 生成頁面的屏幕截圖和PDF。
  • 抓取SPA(單頁面應用程序)並生成預渲染內容(即“×××”(服務器端渲染))。
  • 自動化表單提交,UI測試,鍵盤輸入等。
  • 創建最新的自動化測試環境。使用最新的JavaScript和瀏覽器功能直接在最新版本的Chrome中運行測試。
  • 捕獲站點的時間線跟蹤,以幫助診斷性能問題。
  • 測試Chrome擴展程序。

    該庫具體功能詳見 此處 | Github地址

類似的還可以嘗試PhantomJS -- 可編寫腳本的無頭瀏覽器


閱讀參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章