2021年5月13日 星期四

Wget : 下載完整的網頁

2021年5月13日 星期四

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 還有很多參數可以玩,有空再來試試吧!




沒有留言:

張貼留言

 
雄::gsyan © 2009. Design by Pocket