搜尋此網誌

星期五, 9月 10, 2010

利用Wget 來抓整個網站

wget 是一個相當好的下載軟體,不過由於是命令模式介面,相較一般程式比較不易讓人接受。

基本的使用方法: wget url
例如:wget http://linuxreviews.org/
有關wget 使用手冊還是要靠各位自行去研讀。在網路漫遊的工具上,建議看看這二個手冊 wget (manual page) + less (manual page)。
wget 之所以強大,是在於你能對下載的網站,不斷的深入挖掘,這代表著你能挖光所有的頁面與所有的圖片。
例如: wget -r http://linuxreviews.org/

不過有的網站並不讓你下載全部的內容。這此網站是利用檢查你的流覽器( IE, FireFox,...) 版本。若他發現你不是用網頁流覽器來下載的話,會出現以下的錯誤訊息:
Sorry, but the download manager you are using to view this site is not supported. We do not support use of such download managers as flashget, go!zilla, or getright
--我們不支援下載管理器,如flashget, getright等--

Wget 可以非常方便的利用 -U 參數來對應這些網站. 使用 -U My-browser 來回應適當的版本資訊:




  wget  -r -p -U Mozilla http://www.stupidsite.com/restricedplace.html


其它重要的選項還有: --limit-rate= and --wait=. 你可以加入 --wait=20 來指定每個下載間的暫停時間(20秒), 這可以防止你被列入黑名單中而無法下載。加入 --limit-rate 預設值為 bytes, 加上 K 則為 KB/s. 
例如:
wget --wait=20 --limit-rate=20K -r -p -U Mozilla http://www.stupidsite.com/restricedplace.html
假如你只是簡單的這麼執行 wget http://foo.bar 指令, 網站管理者或許會覺得很沮喪。 而且如果你有限制下載的速度與下載的間隔時間,管理者更將不會查覺。

使用 --no-parent
--no-parent 是一個很方便的選項,這會讓wget 不會下載指定目錄外的其它檔案。

沒有留言: