cURL 的出现是为了传输数据。当与代理相结合时,它就变成了一个强大的数据挖掘工具。
本指南将介绍 cURL,并解释几种将其与代理无缝结合的不同方法。
什么是代理?
代理是一台计算机,位于您自己的计算机和互联网之间,负责路由您的所有网络流量。它有多种用途,如缓存网页或匿名连接。
住宅代理通过另一个真实服务器(通常位于不同地点)将您连接到互联网,使您看起来像是在那个地方而不是在家里浏览。
什么是 cURL?
如果你从未听说过 cURL,也许你知道它的更早名字--httpget 或 urlget。自 1996 年以来,它已经存在了一段时间。它是一个方便的工具,可以让你从远程服务器传输数据。你可以使用 cURL 和代理服务器来获取网页、下载远程文件,还可以在不被发现的情况下做更多事情。
网址是什么?
统一资源定位器(Uniform Resource Locator)是网页地址的专有名词,例如 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 或苹果设备(IOS),curl 已经预装,因此只需跳过这部分。
对于已安装 Cygwin 的 Windows 系统,curl 会被识别为内置命令,因此无需下载。如果您是 Windows 用户且未安装 Cygwin,那么 cURL 极有可能不在您的 c:windowssystem32 目录中
例如,如果你使用的是 Ubuntu,cURL 会在默认软件源中提供,因此只需发出以下命令即可:Sudo apt-get install curl.
cURL 命令行的基本组成部分
如果你不是计算机天体物理学家,请允许我介绍一下命令行的结构。
- 协议 - 指 HTTP、HTTPS、SOCKS 等网络通信方案。
- 代理服务器——您计划使用的代理服务器或代理主机的地址
- 端口号 - 您要通过的端口
- 资源地址 - 您要锁定的网页
- 用户名和密码 - 如果代理地址需要验证
- 标签 - 命令行选项,用于打开或关闭每条命令
- 命令行参数 - 允许您传递有关命令行选项(标记)的信息
把它们放在一起,就会得到这样的结果:

如何使用代理运行 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
......以此类推,无论你选择何种协议代理组合。请注意,只有 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 目录下的reconfig 文件。
它在 Mac 和 Linux 上看起来像 rc.file,在 Windows 上看起来像 _curlrc。
因此,您只需打开该文件并更改代理详细信息:
proxy=http://[proxy details]
使用 SOCKS 代理的 cURL
cURL 支持 SOCKS4 和 SOCKS5 版本。
如果代理服务器使用 socks 协议,语法不变:-socks4://、socks4a:// 或 socks5://。
以下是每个特定 SOCKS 版本的命令行选项:
SOCKS4:
$ 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
SOCKS5:
$ 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 Burger 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 配合使用。
curl 是用来做什么的?
你可以以任何你认为合适的方式使用它。通常情况下,它是一个命令行工具,可用于网络搜索或下载文件。
我需要什么样的代理?
您需要高质量的住宅代理,因为它们可以自动通过验证码而不会触发警报。您应该考虑使用这些 "一刀切 "式的代理,用户可以选择不同的选项,如速度、匿名级别和国家。
有关这些选项的更多帮助,请在终端输入 "man curl "或 "curl -h"。它将显示手册页面。(不是你想的那样)。
