GNU Wget 是一個自由軟體,也是一個強大的下載工具。
之前除了下載單一檔案外,也應用在讀取網址清單,批次下載清單中檔案 (參數: -i ) 。其它的功能則還沒有玩遍。最近又試了一下,抓取完整網頁內容的參數,更為驚豔了!
不過,一開始照著參數說明去試,失敗 n 回,才發現,原來我之前在 Windows 中安裝過的 Wget 是 GNU Wget 1.11.4,這版本是 GNU Win ( http://gnuwin32.sourceforge.net/ ) 中下載的,有一點舊了。在底下的網站中下載較新的版本,所有問題都解決了:
這次的目標是要下載某一個網頁中的所有內容,包括裡面的 mp3 檔案,但是不繼續擷取網頁中連結到其它頁面的網頁。執行的指令如下:
wget -m -k -E -p -np http://aaa.bbb.ccc.ddd/eeeee/fffff.php
底下是各參數的說明(可以用 wget --help 查到):
- -m, --mirror : 相等於 -N -r -l inf --no-remove-listing 選項
- -k, --convert-links : 將下載後的 HTML 的鏈結轉換為本地檔案
- -E, --html-extension : 將所有 HTML 文件加上 “.html” 延伸檔名
- -p, --page-requisites : 下載所有顯示網頁所需的檔案,例如圖片等
- -np, --no-parent : 不進入上層的目錄
會需要加 -E 的參數,主要是因為這個頁面的檔名是 .php ,在本機用瀏覽器開啟時,可能要多一個指定程式的動作,所以乾脆由 Wget 順便幫忙改檔名為 .html ,較方便;而如果去掉 -np 的參數, Wget 抓回來的就不會只有一個網頁了。
Wget 還有很多參數可以玩,有空再來試試吧!
沒有留言:
張貼留言