wget完整網頁 - Linux

George avatar
By George
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

Ida avatar
By Ida
at 2014-02-16T15:55
我之前也發生過很多次 yahoo本來就很爛 還外加奇摩
Suhail Hany avatar
By Suhail Hany
at 2014-02-18T04:29
之前即時通死都不讓我登入 後來我就改用MSN了...
Gary avatar
By Gary
at 2014-02-19T18:17
發現MSN也不給你登....
Elizabeth avatar
By Elizabeth
at 2014-02-24T16:30
就改登PTT了
Erin avatar
By Erin
at 2014-02-28T17:43
最近ptt也一直斷....
Joseph avatar
By Joseph
at 2014-03-04T23:13
只好掀桌出去裸奔了...
Hardy avatar
By Hardy
at 2014-03-08T06:32
建議搭配 wget 使用
Charlotte avatar
By Charlotte
at 2014-03-10T21:56
可以讀取完整內容了~感謝你!!

3TB HDD parted失敗

Belly avatar
By Belly
at 2014-02-14T15:35
電腦數量: 3 (3台的所有規格和作業系統都相同) 系統: Fedora 12 主機板: ASUS m4n68-m v2 外接硬碟: WD MyBook 3TB =========================== 最近買的一個 WD 3T 外接硬碟, 在某些電腦抓得到,並可正確傳輸資料; 但在 ...

Ubuntu Linux SSH timeout?

William avatar
By William
at 2014-02-14T14:40
各位板友大家好, 小弟使用Ubuntu Linux一段時間了, 都是透過pietty連接到Linux操作, 不過有時pietty會自動斷線... 之前爬文也有去更改過/etc/ssh/sshd_config 像是這類的教學:http://ppt.cc/0B4R 不過昨天測試後,依然發生了這個畫面.. 想 ...

centos 6 的子目錄

Zora avatar
By Zora
at 2014-02-14T11:30
我google了一下 在ext4 下可以有64000個子目錄 64000包不包括子目錄下的子目錄 還是64000個子目錄下面還可以有子目錄 - ...

wget完整網頁

Charlie avatar
By Charlie
at 2014-02-13T23:27
第一次發問請多多指教andgt; andlt; 我想利用Linux的wget去抓取網頁資料 但發現我想抓的網頁含有ajax的內容 想請問這樣還有方法可以抓取完整的網頁內容嗎 如果wget無法做到,其他可達成的任何方法都可以... 先謝謝大家回答!! - ...

ELFCLASS的問題

James avatar
By James
at 2014-02-13T00:49
與原po有相同的問題,剛才爬文時,發現有位板友提出的看法如下: 請查閱 /usr/include/elf.h #define ELFCLASS32 1 /* 32-bit objects */ #define ELFCLASS64 2 ...