cURL 被帶到世界上來傳輸數據。當與代理結合使用時,它會變成一個強大的數據挖掘工具。
本指南將介紹 cURL,並解釋幾種可以將其與代理無縫使用的不同方法。
什麼是代理?
代理是位於您自己的計算機和互聯網之間的計算機,用於路由所有網路流量。您可以將其用於各種目的,例如緩存網頁或匿名連接。
一個 住宅 P火箭y 通過另一個真實伺服器(通常位於不同的位置)將您連接到互聯網,讓您看起來像是從那個地方而不是您的家流覽。
什麼是網址?
如果你從未聽說過cURL,也許你知道它的名字 - HTTPget或urlget。自1996年以來,它已經存在了一段時間。這是一個方便的工具,可讓您從遠端伺服器傳輸數據。您可以將 cURL 與代理一起使用來獲取網頁、下載遠端檔以及執行更多操作而不會檢測到。
網址是什麼?
例如,統一資源定位器是 https://example.com 等網址的專有術語。(什麼?這是一個很好的例子!
URL (HTTPS) 的第一部分是協議標識碼。有時協定是HTTP,有時是HTTPS。不同之處在於,一個(HTTPS)使用加密的安全協定,而另一個(HTTP)未加密。還有更多的協定,但我將主要關注這兩個。
該選擇哪一種?這取決於您的風險承受能力。您可在此進一步了解加密與風險的相關資訊。
URL 的第二部分 (example.com) 是資源。
URL前面的小「c」呢?
它代表 用戶端。(那就是你)
將它們結合起來,你會得到cURL。您和 URL,將資源連接和定位在一起。(感人的東西!

cURL 有什麼作用?
cURL 可在 Linux、Windows 和 Mac 操作系統以及 Android 和 iOS 上運行。它還提供了自定義其功能的選項,使其成為網站管理員社區中非常需要的工具。
它還支援 Basic 和 Digest 等驗證方法,並能極其出色地處理使用者層級的 HTTP 代理伺服器設定。
cURL 具有許多配置選項,可讓您決定在遇到某些條件(例如 HTTP 錯誤代碼)時應執行的操作。
底線:它完成了瀏覽器所做的大多數事情,但所有這些都在一個沒有圖片和所有有趣東西的小黑視窗中。

快速 cURL 安裝指南:
如果您使用的是Mac OSX或Apple設備(IOS),則預裝了curl,因此請跳過此部分。
若您的 Windows 系統已安裝 Cygwin,系統會將 curl 視為內建指令,因此無需另行下載。若您是 Windows 使用者且未安裝 Cygwin,cURL 極可能不在您的 c:\windows\system32 目錄中
例如,如果您使用的是Ubuntu,cURL將在預設存儲庫中可用,因此只需發出以下命令:sudo apt-get install curl。
cURL 命令行的基本部分
如果你不是計算機天體物理學家,請允許我介紹一下命令行的結構。
- 協定 – 指網路通信方案,如 HTTP、HTTPS、襪子等。
- 代理伺服器– 您計劃使用的代理伺服器或代理主機的位址
- 連接埠號 – 您將透過其存取的連接埠
- 資源位址 – 要定位的網頁
- 使用者名稱和密碼 – 如果代理位址需要身份驗證
- 標籤 – 是打開和關閉每個命令的命令列選項
- 命令列參數 – 允許您傳遞有關命令列選項(標記)的資訊
把它們放在一起,你就有了這樣的東西:

如何使用代理運行 cURL?
您可以將 cURL 與各種代理伺服器搭配使用,例如家用代理、私人代理、共享代理以及資料中心代理。
使用代理設置 cURL 的最常見方法是使用代理命令。
使用代理命令
代理命令是影響代理字串(代理詳細資訊 + 埠 + 使用者 + 傳遞)的命令行選項或標記。影響主要只是打開或關閉代理。
每個標籤都有一個短 (-) 和長 (–) 版本。有點像莫爾斯電碼的dits和dahs。
-x
是簡短的選項。
是長選項。
它們都做同樣的事情,除了 -x 更有效率(也許更美觀)。
要將 cURL 正確連接到代理,請使用 -x 或 –proxy 標記,後跟協定、代理伺服器、埠號以及所需的任何資源。
下面是命令列可能的外觀的基本範例:
-x, --proxy [protocol]://[proxyhost]:[port][resource address]
還有一點充實:
-x, --proxy http://residential.ipb.server:7777 https://google.com
還有其他幾種方法可以將代理與 cURL 一起使用。
以下部分將介紹基本身份驗證方案,使用環境變數、別名、重配置檔、不同協定和禁用代理。
帶有使用者名和密碼的 cURL
使用代理身份驗證方案的標記是 -u 或 –proxy-user。在代理字串和資源之間,輸入標記、使用者名和密碼。
$ curl -x http://residential.ipb.server:7777 [-u username:password] http://google.com
使用別名
命令的別名,代理的別名,聽起來像是絕密的三重代理類型的策略。
這其實很簡單。
您只是使 curl 命令等於 curl 命令 + 代理詳細資訊。
因此,當您輸入時:
$ curl https//google.com
它實際上意味著:
$ curl -x [all your proxy details] https://google.com
這個魔法是如何完成的?簡單(就像我說的):
$ alias curl=curl -x [enter all the proxy details here]
使用環境變數
什麼是環境變數?如果您正在考慮由於下雨而導致的濕滑路況 - 關閉,但不完全。

在這種情況下,這是一個快捷方式。
您可以永久設置代理,而不是一直鍵入代理字串。
環境變數適用於每種類型的協定。您需要做的就是通過設置變數PROTOCOL_PROXY來啟用它。
http_proxy, HTTPS_PROXY, FTP_PROXY
...等等,無論您選擇什麼protocol_proxy組合。請注意,HTTP 是唯一大小寫字母較小的字母。那是故意的。它是唯一必須小寫的,但我不會在這裡討論它的技術原因。
您還可以使用:
ALL_PROXY
如果您的任務不是特定於協定的。
例如,讓我們按照以下範本組成一個代理字串:
$ curl -x [proxy server]:[port] [username:password] [resource]
(胡說八道)
$ curl -x http://180.1.0.0.1222:8080 -u jumpingjack:candlestick https://nimblejack.com
使用代理命令選項,您必須始終鍵入此內容。相反,使用 匯出設置變數,如下所示:
export http_proxy=http://180.1.0.0.1222:8080 -u jumpingjack:candlestick https://nimblejack.com
or
export WHATEVER OTHER PROTOCOL YOU WANT_PROXY:// [proxy server]:[port] [username:password]
現在,您只需在命令列中輸入:
$ curl https//nimblejack.com
你很好去!
注意:如果要在設置環境變數后使用其他代理,-x 標籤將覆蓋它。
更改 rc.file
此處是利用 cURL 的內建特性,使其採用預設設定。當程式載入時,它會搜尋 %APPDATA% 或 %USERPROFILE%Application Data 目錄中的重新配置檔案。
它看起來像Mac和Linux上的rc.file,在Windows上看起來像_curlrc。
因此,您需要做的就是打開該檔並更改代理詳細資訊:
proxy=http://[proxy details]
帶有襪子代理的 cURL
cURL 支援 SOCKS 版本 SOCKS4 和 SOCKS5。
如果代理伺服器使用 socks 協議,語法保持不變:-socks4://、socks4a:// 或 socks5://。
以下是每個特定 SOCKS 版本的命令列選項:
襪子4:
$ curl -x socks4://180.1.0.0.1222:8080 http://ipburger.com
SOCKS4A:
$ curl -x socks4a://180.1.0.0.1222:8080 http://ipburger.com/bestresidentialproxies
襪子5:
$ curl -x socks5://180.1.0.0.1222:8080 http://ipburger.com/betterthanoxylabsandbrightdata
SOCKS5H:
$ curl -x socks5h://180.1.0.0.1222:8080 http://ipburger.com/decentreadingmaterialtoo
您可能會注意到我沒有在IP位址後放置埠號。
(也許你分心了...
使用SOCKS協定時,無需在URL中包含埠號,因為這不是必需的。
只是為了讓你知道。
禁用代理
我們現在知道可以通過各種方式設置帶有代理的 cURL。這使得運行 cURL 變得容易,並節省了鍵入時間。但是,在某些情況下,您可能需要重置當前的代理設置並直接連接。
–noproxy 選項可用於禁用當前代理配置。
$ curl --noproxy http://ipburger.com
IP 漢堡 cURL 代理
您可以簡單地跳過命令列組合。毫無疑問,這可能很乏味。因此,如果您寧願將它們放在一起,則沒有判斷力。事實上,我鼓勵這樣做。
這不僅是因為IPBurger能在幾秒內直接從伺服器端提供最新的住宅型 Curl 代理,更因為你大概正在做些很酷的事情。與其讓你花時間去擺弄布林位元,我寧願你把時間花在那些事情上。
您只需下載準備好命令行參數、命令行參數、協定主機埠、使用者名和傳遞的代理清單即可。

所有這些都連接到非常適合網頁抓取或您所做的其他很酷的事情的住宅代理。
常見問題
為什麼 cURL 並不總是使用相同的代理?
它無法從清單中選取單一或特定的家用 IP位址池來使用。最佳做法是從不同的終端機視窗同時執行多個 cURL 指令,並讓每個指令使用不同的家用代理伺服器。這樣能確保每個請求都能獲得專屬的家用 IP 位址池。
我可以混合使用 HTTP 和 HTTPS 協定嗎?
您可以完全混合您的請求,只要它們同時具有透明和匿名憑據。如果您計劃通過HTTPS下載檔,cURL將始終自行選擇HTTPS。
如何將 cURL 配置為同時使用不同的代理?
cURL 沒有代理池選項。它一次僅支援一個代理。要將其與多個代理一起使用,應將它們設置為 cURL 選項並將它們作為參數傳遞。換句話說,
curl -x http://addr1:port1 -u username -p password URL_SCHEME://addr2:port2
如果您希望 cURL 通過環境變數使用兩個或多個代理,只需在 .bashrc 檔中添加代理設置即可。然後,您可以在匯出shell配置檔後,通過在終端中鍵入命令而不帶任何參數,通過該特定代理伺服器使用 cURL 訪問任何代理。
cURL 代理需要是靜態的嗎?
不。cURL 代理是住宅 IP 位址,經常更改。換句話說,它們可以是動態的。如果動態住宅 IP 足夠快,請求可以順利通過它們,則它們將與 cURL 充分配合使用。
捲曲有什麼用?
您可以以您認為合適的任何方式使用它。通常,它是一個命令行實用程式,可用於 Web 抓取或下載檔。
我需要什麼樣的代理?
您需要高品質的住宅代理,因為它們可以自動通過驗證碼而不會觸發警報。您應該考慮使用這些一刀切的代理,用戶可以在其中選擇不同的選項,例如速度、匿名級別和國家/地區。
有關這些選項的更多説明,請在終端中鍵入“man curl”或“curl -h”。它將顯示手冊頁。(這不是你想的那樣。
