首頁 > 軟體

Linux使用curl存取網頁和wget下載檔案

2022-06-01 14:01:41

一:curl(網頁存取,檔案傳輸工具)

curl可以下載,但是長項不在於下載,而在於模擬提交web資料,POST/GET請求,偵錯網頁,等等。curl支援URL中加入變數,因此可以批次下載。;

使用curl 來跟網站的API 互動,簡便清晰。

1、安裝

1.安裝:

sudo apt install curl

2.檢視是否成功:

curl --version

2、常用引數

  • -c,–cookie-jar:將cookie寫入到檔案
  • -b,–cookie:從檔案中讀取cookie
  • -C,–continue-at:斷點續傳
  • -d,–data:http post方式傳送資料
  • -D,–dump-header:把header資訊寫入到檔案
  • -F,–from:模擬http表達提交資料
  • -s,–slient:減少輸出資訊
  • -o,–output:將資訊輸出到檔案
  • -O,–remote-name:按照伺服器上的檔名,存在本地
  • –l,–head:僅返回頭部資訊
  • -u,–user[user:pass]:設定http認證使用者和密碼
  • -T,–upload-file:上傳檔案
  • -e,–referer:指定參照地址
  • -x,–proxy:指定代理伺服器地址和埠
  • -w,–write-out:輸出指定格式內容
  • –retry:重試次數
  • –connect-timeout:指定嘗試連線的最大時間/s

3、使用範例

1、檢視某網頁(該方法大部分用來測試伺服器是否能到達另一個網站):curl [URL]

curl http://www.baidu.com

2、存取HTTP認證頁面

curl –u user:pass URL

3、 重定向儲存: curl [URL] >> [你的命名]

curl http://www.baidu.com >> baidu.html

4、下載網頁:curl -o [你的命名] [URL] ,如果有亂碼可以使用iconv轉碼

curl -o baidu.html www.baidu.com
curl –s –o baidu.html www.baidu.com |iconv -f utf-8 #減少輸出資訊

5、下載網頁中具體某個檔案:curl -O [URL]:

curl -O http://www.baidu.com/a7.png

6、指定proxy伺服器以及其埠:curl -x [ip:埠] [URL]

curl -x 192.168.0.1:1080 http://www.baidu.com

7、模擬使用者登陸,儲存cookie資訊到cookies.txt檔案,再使用cookie登陸

curl -c ./cookies.txt -F NAME=user -F PWD=***URL 
curl -b ./cookies.txt –o URL

8、獲取和儲存HTTP響應頭headers:curl -D [儲存格式] [URL]

curl -I http://www.baidu.com
curl -D ./header.txt http://www.baidu.com #將headers儲存到檔案中

9、模仿瀏覽器:curl -A [UA] [URL]

curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.baidu.com

10、斷點續傳:curl -C -O [URL]

curl -C -O https://s3.ap-northeast-1.wasabisys.com/img.it145.com/202206/dodo1py11c0fsh54.JPG

12、通過ftp上傳和下載檔案:curl -T [檔案] -u username:password ftp:[URL] :

curl -T filename ftp://user:pass@ip/docs #上傳
curl -T dodo1.JPG -u 使用者名稱:密碼 ftp://www.linux.com/img/ #上傳
curl -O ftp://user:pass@ip/filename #下載

二:wget(用於檔案下載,在安裝軟體時會經常用到。)

wget是個專職的下載利器,簡單,專一,極致;

wget可以遞迴,支援斷點。加 -c選項不怕斷網

1、安裝

1.安裝wget:

sudo apt install wget

2.檢視是否成功:

wget --version

3、用法:wget [OPTION]... [URL]...

2、常用引數

1 啟動引數

  • -V,–version:顯示版本號
  • -h,–help:檢視幫助
  • -b,–background:啟動後轉入後臺執行

2 紀錄檔記錄和輸入檔案引數

  • -o,–output-file=file:把記錄寫到file檔案中
  • -a,–append-output=file:把記錄追加到file檔案中
  • -i,–input-file=file:從file讀取url來下載

3 下載引數

  • -bind-address=address:指定本地使用地址
  • -t,-tries=number:設定最大嘗試連線次數
  • -c,-continue:接著下載沒有下載完的檔案
  • -O,-output-document=file:將下載內容寫入到file檔案中
  • -spider:不下載檔案
  • -T,-timeout=sec:設定響應超時時間
  • -w,-wait=sec:兩次嘗試之間間隔時間
  • –limit-rate=rate:限制下載速率
  • -progress=type:設定進度條

4 目錄引數

  • -P,-directory-prefix=prefix:將檔案儲存到指定目錄

5 HTTP引數

  • -http-user=user:設定http使用者名稱
  • -http-passwd=pass:設定http密碼
  • -U,–user-agent=agent:偽裝代理
  • -no-http-keep-alive:關閉http活動連結,變成永久連結
  • -cookies=off:不使用cookies
  • -load-cookies=file:在開始對談前從file檔案載入cookies
  • -save-cookies=file:在對談結束將cookies儲存到file檔案

6 FTP引數

  • -passive-ftp:預設值,使用被動模式
  • -active-ftp:使用主動模式

7 遞迴下載排除引數

  • -A,–accept=list:分號分割被下載擴充套件名的列表
  • -R,–reject=list:分號分割不被下載擴充套件名的列表
  • -D,–domains=list:分號分割被下載域的列表
  • –exclude-domains=list:分號分割不被下載域的列表

3、使用範例:

1、使用wget下載單個檔案 :wget [URL]

wget http://cn2.php.net/distributions/php-5.6.13.tar.gz

2、下載並以不同的檔名儲存 :wget -o [你的命名] [URL]

wget -o php5.6.tar.gz http://cn2.php.net/distributions/php-5.6.13.tar.gz

3、使用wget斷點續傳:wget -c [上次下載的URL]

wget -c http://cn2.php.net/distributions/php-5.6.13.tar.gz

4、使用wget後臺下載 :wget -b [URL]

wget -b http://cn2.php.net/distributions/php-5.6.13.tar.gz
tail -f wget-log #檢視檔案下載進度

5、使用wget下載到指定目錄:wget [URL] -P [儲存地址]

wget http://cn2.php.net/distributions/php-5.6.13.tar.gz -P Download/

6、使用wget使用者名稱和密碼認證下載,登陸ftp下載檔案:

wget --ftp-user=USERNAME --ftp-password=PASSWORD ftp://ip/filenam

7、可以利用—spider引數判斷網址是否有效

wget –spider http://nginx.org/download/nginx-1.8.0.tar.gz

8、自動從多個連結下載檔案

cat url_list.txt #先建立一個URL檔案
http://nginx.org/download/nginx-1.8.0.tar.gz
http://nginx.org/download/nginx-1.6.3.tar.gz
wget -i url_list.txt

三:區別

curl由於可自定義各種請求引數所以在模擬web請求方面更擅長;wget由於支援ftp和Recursive所以在下載檔案方面更擅長。類比的話curl是瀏覽器,而wget是迅雷9。

1.下載檔案

curl -O http://man.linuxde.net/text.iso #O大寫,不用O只是列印內容不會下載
wget http://www.linuxde.net/text.iso #不用引數,直接下載檔案

2.下載檔案並重新命名

curl -o rename.iso http://man.linuxde.net/text.iso #o小寫
wget -O rename.zip http://www.linuxde.net/text.iso #O大寫

3.斷點續傳

curl -O -C -URL http://man.linuxde.net/text.iso #C大
wget -c http://www.linuxde.net/text.iso #c小寫

4.限速下載

curl --limit-rate 50k -O http://man.linuxde.net/text.iso
wget --limit-rate=50k http://www.linuxde.net/text.iso

5.顯示響應頭部資訊

curl -I http://man.linuxde.net/text.iso
wget --server-response http://www.linuxde.net/test.iso

6.wget利器--打包下載網站

wget --mirror -p --convert-links -P /var/www/html http://man.linuxde.net/

到此這篇關於Linux使用curl命令存取網頁和wget下載檔案的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com