wget完整網頁 - Linux

By George
at 2014-02-14T21:36
at 2014-02-14T21:36
Table of Contents
推文有提到 headless browser, 我來解釋一下
headless browser 就是沒有操作介面的瀏覽器
完全由使用者寫的指令去完成瀏覽動作
因此你可以
- 自動化網頁測試
- 產生網頁截圖或 PDF
- 自動開啟網頁並完成批次工作(包括登入)
也就是說 headless browser 會載入完整的網頁,包含執行 JavaScript
因為必須載入並處理完整的網頁,所以比純粹抓網頁原始碼還耗時
但是拿來應付 ajax 動態產生資料的網頁還挺適合的
可惜我只找到方法可以抓取 .html 檔,而無法抓取相應的 .css 與 .js 檔
而且也無法做 recursive 所以不能砍站,只能一次抓一個網頁 QwQ
--
目前最被廣泛使用的 headless browser 應該是 PhantomJS 與 CasperJS
後者是對前者的補完,也就是 CasperJS 會比 PhantomJS 提供更多功能
不過這次我以 PhantomJS 作為教學
PhantomJS 基於 WebKit 引擎,使用 JavaScript 做為其指令語言
所以渲染出來的結果與 Google Chrome / Safari 系差不多
請先依照 http://phantomjs.org/download.html 的指示完成 PhantomJS 的安裝
然後將 http://pastebin.com/y8NSGUXv 的程式碼存成 savepage.js
然後執行
phantomjs savepage.js http://www.example.com saved_page.html
最後一個參數可省略
這個腳本會依照以下順序作為檔名依據
1. 最後一個參數指定的檔案名稱
2. HTTP Header: Content-Disposition 指定的名稱
3. 根據 url 猜測檔案名稱
4. 以上皆失敗時取名為 saved_page
遇到重複的檔案會自動在檔名後方加上流水號
--
→ eggimage:我之前也發生過很多次 yahoo本來就很爛 還外加奇摩12/10 18:52
推 madeinchina:之前即時通死都不讓我登入 後來我就改用MSN了...12/10 18:53
→ eggimage:發現MSN也不給你登....12/10 18:53
推 madeinchina: 就改登PTT了12/10 18:55
→ eggimage:最近ptt也一直斷....12/10 18:57
→ freely10469: 只好掀桌出去裸奔了...12/10 19:57
--
Tags:
Linux
All Comments

By Ida
at 2014-02-16T15:55
at 2014-02-16T15:55

By Suhail Hany
at 2014-02-18T04:29
at 2014-02-18T04:29

By Gary
at 2014-02-19T18:17
at 2014-02-19T18:17

By Elizabeth
at 2014-02-24T16:30
at 2014-02-24T16:30

By Erin
at 2014-02-28T17:43
at 2014-02-28T17:43

By Joseph
at 2014-03-04T23:13
at 2014-03-04T23:13

By Hardy
at 2014-03-08T06:32
at 2014-03-08T06:32

By Charlotte
at 2014-03-10T21:56
at 2014-03-10T21:56
Related Posts
3TB HDD parted失敗

By Belly
at 2014-02-14T15:35
at 2014-02-14T15:35
Ubuntu Linux SSH timeout?

By William
at 2014-02-14T14:40
at 2014-02-14T14:40
centos 6 的子目錄

By Zora
at 2014-02-14T11:30
at 2014-02-14T11:30
wget完整網頁

By Charlie
at 2014-02-13T23:27
at 2014-02-13T23:27
ELFCLASS的問題

By James
at 2014-02-13T00:49
at 2014-02-13T00:49