wget 指令(下載檔案) – 進階用法

技術文章, 程式應用

以下是一些比較進階的 wget 用法與範例,適合比較有經驗的程式設計者或系統管理者使用。

 

■ 偽裝瀏覽器

 

正常使用 wget 時下載檔案時,其 user agent 會顯示 wget 的版本資訊:

 

wget https://blog.gtwang.org/gtwang-url-128.png

 

這個資訊會記錄在網頁伺服器的紀錄檔中:

 

66.249.79.20 – – [25/Aug/2017:09:42:44 +0800] "GET /gtwang-url-128.png HTTP/1.1" 200 5289 "-" "Wget/1.14 (linux-gnu)"

 

網頁伺服器可以很容易靠著 user agent 辨識出這個連線是由 wget 所發出來的。

如果想要將 wget 偽裝成一般的瀏覽器,可以修改 user agent 的設定:

 

wget –user-agent="Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko" https://blog.gtwang.org/gtwang-url-128.png

 

這樣其所發出的 http 請求就會跟一般的瀏覽器幾乎相同:

 

66.249.79.20 – – [25/Aug/2017:09:44:53 +0800] "GET /gtwang-url-128.png HTTP/1.1" 200 5289 "-" "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"

 

■ 模仿 Spider

 

wget 的 –spider 功能可以模仿網路的 spider,只檢查指定的檔案字否存在,但是不下載任何資料:

 

wget –spider http://releases.ubuntu.com/16.04.3/ubuntu-16.04.3-desktop-amd64.iso

 

輸出為:

 

 

 

■ 下載整個網站

 

如果要把整個網站都下載下來(砍站),可以使用 –mirror 參數:

 

wget –mirror -p –convert-links -P ./my_folder http://edition.cnn.com/

 

這樣就會將 http://edition.cnn.com/ 整個網站的內容全部下載下來,放在 ./my_folder 目錄下。以下是這裡使用到的參數意義:

 

  • –mirror:下載整個網站。

  • -p:自動下載顯示網頁所需要的所有相關檔案。

  • –convert-links:自動將下載網頁中的超連結,轉換為本地的連結。

  • -P ./my_folder:將下載的檔案放在 ./my_folder 目錄下。

 

■ 設定下載資料大小上限

 

如果在使用 wget 下載很多個檔案時,會有硬碟空間不足的疑慮,可以使用 -Q 參數來指定累積下載資料的大小上限,如果下載資料的大小總和超過這個值的時候,就會停止下載:

 

wget -Q5m -i url.txt

 

這個例子會下載 url.txt 檔案中所列的檔案,若下載的資料超過 5MB 時,就會停止下載動作。

 

 

■ 遞迴下載特定類型檔案

 

如果要從網站上下載特定類型的檔案,可以使用 -r 遞迴下載,並且配合 -A指定下載的檔案類型,例如從網站上下載所有的 PDF 檔:

 

wget -r -A.pdf http://www.example.com/

 

 

■ 代理伺服器(Proxy)

 

若要讓 wget 透過代理伺服器抓取資料,可以在 ~/.wgetrc 這個設定檔中加入代理伺服器的設定:

 

use_proxy=yes

http_proxy=http://proxy.yoyodyne.com:18023/

 

這樣在使用 wget 就會自動使用這裡的代理伺服器了。

如果不想更改 ~/.wgetrc 設定檔,也可以直接在執行 wget 時用 -e 參數來指定代理伺服器:

 

wget -e use_proxy=yes \

     -e http_proxy=http://proxy.yoyodyne.com:18023/ \

     http://www.example.com/

 

以下是各種代理伺服器的設定方式,以及帳號與密碼的寫法:

 

use_proxy=on

http_proxy=http://username:[email protected]:port/

https_proxy=http://username:[email protected]:port/

ftp_proxy=http://username:[email protected]:port/

 

 

來源出處:https://blog.gtwang.org/linux/linux-wget-command-download-web-pages-and-files-tutorial-examples/

 

Gimmy
作者: Gimmy
積極的人在每一次憂患中都看到一個機會 而消極的人則在每個機會都看到某種憂患

發表迴響