curl使用小記(一)

1. 概述

curl也就是command line tool and library for transferring data with URLs的縮寫,也就是一種通過URL傳輸數據的命令行工具和庫。可以直接通過curl命令行工具進行url協議通迅的相關操作,也可以通過其libcurl庫的接口,在自己的程序中進行相同的操作。其支持的協議非常全,而且提供了C的接口,所以很多庫和軟件都使用libcurl作爲url數據傳輸的底層庫。

2. 實例

libcurl庫的使用還是很繁瑣的,所有的操作都可以先用命令行工具curl驗證一下。如果是從源代碼編譯的curl,那麼兩者都會編譯。推薦先找到已經編譯好的curl來使用,因爲curl對於https的支持是需要ssl的,編譯器來稍微有點麻煩。這裏主要論述一下curl的使用。

2.1. 訪問網頁

curl最主要的功能就是訪問網頁了,不過因爲是命令行窗口,所以訪問的網頁的源代碼:

curl https://www.baidu.com

imglink1

注意這裏我訪問的是https,當我訪問http的時候獲取的源代碼有點問題,可能是現在很多網站對http的訪問會遷移到https造成的。

2.2. 顯示頭信息

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

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來下載網絡上的一些資源。

2.5. 用戶代理設置

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

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設置地址及端口即可:

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命令使用代理、以及代理種類介紹
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章