星期日, 六月 17, 2007

wget

wget是各U*ix系統上常見的指令,本身支援非常多的功能,最近用wget累積了一點經驗,就把它記下來…

wget [URL]

這是最基本的型式。也可以把所有要抓的檔案的url集中在一個檔裡,然後用-i參數一次傳給wget:

wget -i [input_files]

不過比較常見的是,我們想抓「一個網頁裡所有的連結所指向的檔案」,那其實可以像下面這樣用:

wget -i [html_files] --force-html --base=[base url]

這樣子wget就會去分析檔案裡所有的連結,同時照著連結去抓取檔案。指定--base選項的目的是,如果html裡的連結是相對路徑(通常來說相對路徑比較常見),那麼wget就會以--base選項指定的url做為相對路徑的基底路徑。

wget ftp://ftp.xemacs.org/pub/xemacs/

沒錯,wget也可以直接抓取ftp檔案。在這個例子裡,我們想抓的擋案會放在./ftp.xemacs.org/pub/xemacs/裡,這顯得很麻煩。
我們可以加上-nH選項讓wget不會產生/ftp.xemacs.org/這一層的目錄,可是仍舊有./pub/xemacs/這兩層討厭的目錄在,此時我自可以再加上--cut-dirs=n這樣的選項。如果有加上-nH且n設為1,那麼就只會有./xemacs
目錄了。如果完全不想要目錄,也可以用-nd選項,則所有檔案會直接放在現在所處的路徑下。這些在manpages裡有更詳細的介紹。

我都是去抓老師上課的投影片來練習使用wget...XD

2 意見:

lwhsu 提到...

光 wget 抓老師的投影片還不夠,要用 wget -m 把整個課程網站 mirror 下來,放到 contab 裡面跑,這樣才不怕課程網站掛掉,還要做有更新自動通知,才不會被心機老師/助教陰了 XD

Qlife 提到...

過了很久才記得回來回0rz...就照立文ㄉㄉ的命令來做了 XD