linux-curl網頁訪問和wget下載

一:curl(網頁訪問,文件傳輸工具)

curl能夠下載,可是長項不在於下載,而在於模擬提交web數據,POST/GET請求,調試網頁,等等。curl支持URL中加入變量,所以能夠批量下載。;php

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

一、安裝

1.安裝:linux

sudo apt install curl

2.查看是否成功:nginx

curl --version

二、經常使用參數

  • -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

三、使用示例

一、查看某網頁(該方法大部分用來測試服務器是否能到達另外一個網站):curl [URL]web

curl http://www.baidu.com

二、訪問HTTP認證頁面瀏覽器

curl –u user:pass URL

三、 重定向保存: curl [URL] >> [你的命名]服務器

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

四、下載網頁:curl -o [你的命名] [URL] ,若是有亂碼可使用iconv轉碼cookie

curl -o baidu.html www.baidu.com curl –s –o baidu.html www.baidu.com |iconv -f utf-8 #減小輸出信息

五、下載網頁中具體某個文件:curl -O [URL]:app

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

六、指定proxy服務器以及其端口:curl -x [ip:端口] [URL]dom

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

七、模擬用戶登錄,保存cookie信息到cookies.txt文件,再使用cookie登錄

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

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

curl -I http://www.baidu.com
curl -D ./header.txt http://www.baidu.com #將headers保存到文件中

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

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

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

curl -C -O http://www.linux.com/dodo1.JPG

十二、經過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.安裝wget:

sudo apt install wget

2.查看是否成功:

wget --version

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

二、經常使用參數

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:分號分割不被下載域的列表

三、使用示例:

一、使用wget下載單個文件 :wget [URL]

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

二、下載並以不一樣的文件名保存 :wget -o [你的命名] [URL]

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

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

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

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

wget -b http://cn2.php.net/distributions/php-5.6.13.tar.gz
tail -f wget-log #查看文件下載進度

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

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

六、使用wget用戶名和密碼認證下載,登錄ftp下載文件:

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

七、能夠利用—spider參數判斷網址是否有效

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

八、自動從多個連接下載文件

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/
相關文章
相關標籤/搜索