curl使用小記(一)

1. 概述

curl也就是command line tool and library for transferring data with URLs的縮寫,也就是一種經過URL傳輸數據的命令行工具和庫。能夠直接經過curl命令行工具進行url協議通迅的相關操做,也能夠經過其libcurl庫的接口,在本身的程序中進行相同的操做。其支持的協議很是全,並且提供了C的接口,因此不少庫和軟件都使用libcurl做爲url數據傳輸的底層庫。html

2. 實例

libcurl庫的使用仍是很繁瑣的,全部的操做均可以先用命令行工具curl驗證一下。若是是從源代碼編譯的curl,那麼二者都會編譯。推薦先找到已經編譯好的curl來使用,由於curl對於https的支持是須要ssl的,編譯器來稍微有點麻煩。這裏主要論述一下curl的使用。linux

2.1. 訪問網頁

curl最主要的功能就是訪問網頁了,不過由於是命令行窗口,因此訪問的網頁的源代碼:服務器

curl https://www.baidu.com

imglink1

注意這裏我訪問的是https,當我訪問http的時候獲取的源代碼有點問題,多是如今不少網站對http的訪問會遷移到https形成的。網絡

2.2. 顯示頭信息

添加-i參數,就顯示http response的頭信息:curl

curl -i https://www.baidu.com

imglink2

2.3. 保存網頁

訪問的網頁能夠經過-o參數保存下來:工具

curl https://www.baidu.com -o 1.html

imglink3

2.4. 下載圖片

使用一樣的方法能夠下載網絡上的圖片:網站

curl https://cn.bing.com/th?id=OHR.GrandsCausses_EN-CN3335882379_800x480.jpg -o 1.jpg

imglink4
利用這個方法能夠經過curl來下載網絡上的一些資源。google

2.5. 用戶代理設置

用戶代理設置也就是請求頭的User-Agent,有的網站服務器會屏蔽一些不被容許的客戶端去訪問它,這個時候能夠經過設置User-Agent來訪問(提示不要作非法請求,惡意爬蟲是違法的):url

curl https://www.sina.com.cn --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

2.6. 代理設置

curl還能夠設置經過代理來訪問特定的服務器,好比說某些公司的內部網絡。代理也包含了不少繁複的種類和知識,我這裏只記錄一種簡單的無需帳號密碼的http代理,簡單的經過-x或者--proxy設置地址及端口便可:.net

curl --proxy 127.0.0.1:1080 https://www.google.com --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

3. 參考

  1. curl網站開發指南
  2. 使用wget或curl時 error 403 forbidden
  3. Linux curl命令使用代理、以及代理種類介紹
相關文章
相關標籤/搜索