长出手臂,使用代理的 cURL

cURL 的出现是为了传输数据。当与代理相结合时,它就变成了一个强大的数据挖掘工具。

本指南将介绍 cURL,并解释几种将其与代理无缝结合的不同方法。

什么是代理?

代理是一台计算机,位于您自己的计算机和互联网之间,负责路由您的所有网络流量。它有多种用途,如缓存网页或匿名连接。

住宅代理通过另一个真实服务器(通常位于不同地点)将您连接到互联网,使您看起来像是在那个地方而不是在家里浏览。

什么是 cURL?

如果你从未听说过 cURL,也许你知道它的更早名字--httpget 或 urlget。自 1996 年以来,它已经存在了一段时间。它是一个方便的工具,可以让你从远程服务器传输数据。你可以使用 cURL 和代理服务器来获取网页、下载远程文件,还可以在不被发现的情况下做更多事情。

网址是什么?

统一资源定位器(Uniform Resource Locator)是网页地址的专有名词,例如 https://example.com。(什么?这是个好例子!)。

URL 的第一部分(HTTPS)是协议标识符。有时协议是 HTTP,有时是 HTTPS。区别在于,一种协议(HTTPS)使用的是加密的安全协议,而另一种协议(HTTP)是未加密的。还有很多其他协议,但我将主要介绍这两种。

Which should you use? It depends on your risk tolerance. You can read more about encryption and risk here.

URL 的第二部分(example.com)是资源。

URL前面的小 "c "呢?

它代表客户。(就是你)

将它们结合起来,就得到了 cURL。你和 URL,一起连接和定位资源。(令人感动的东西)

卷发之爱

cURL 是做什么的?

cURL 可在 Linux、Windows 和 Mac 操作系统以及 Android 和 iOS 上运行。它还提供了自定义功能选项,使其成为网站管理员社区中备受青睐的工具。

It also supports authentication methods such as Basic and Digest and can handle user-level HTTP proxy configurations exceptionally well.

cURL 有许多配置选项,可以让你决定它在遇到某些情况(如 HTTP 错误代码)时应该怎么做。

一句话:它能做浏览器能做的大部分事情,但都是在一个没有图片和其他有趣东西的黑色小窗口中完成的。

使用 Windows 命令提示符的 6 种巧妙方法 | Wired

cURL 快速安装指南

如果你使用的是 Mac OSX 或苹果设备(IOS),curl 已经预装,因此只需跳过这部分。

For Windows with Cygwin already installed, curl will be recognized as an internal command, so there’s no need to download it. If you’re a Windows user and don’t have Cygwin installed, cURL is most likely not in your c:windowssystem32 directory

例如,如果你使用的是 Ubuntu,cURL 会在默认软件源中提供,因此只需发出以下命令即可:Sudo apt-get install curl.

cURL 命令行的基本组成部分

如果你不是计算机天体物理学家,请允许我介绍一下命令行的结构。

  • 协议 - 指 HTTP、HTTPS、SOCKS 等网络通信方案。
  • Proxy server – the address of the proxy server or proxy host you plan to use
  • 端口号 - 您要通过的端口
  • 资源地址 - 您要锁定的网页
  • 用户名和密码 - 如果代理地址需要验证
  • 标签 - 命令行选项,用于打开或关闭每条命令
  • 命令行参数 - 允许您传递有关命令行选项(标记)的信息

把它们放在一起,就会得到这样的结果:

命令行 Curl

如何使用代理运行 cURL?

You can set up cURL with various kinds of proxies like residential proxies, private proxies, shared proxies, and datacenter proxies.

使用代理命令是设置 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

Here you appeal to cURL’s inherent nature to use its default settings. When the program loads, it will search %APPDATA% or %USERPROFILE%Application Data for the reconfig file.

它在 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 代理

您可以直接跳过命令行合成。毫无疑问,这很乏味。所以,如果你愿意让别人帮你编写,我也不会说什么。事实上,我鼓励这样做。

Not just because IPBurger delivers residential curl proxies hot off the server, in seconds, but also because you’re probably doing something cool. And I’d rather you spend time doing that than playing lego with boolean bits.

您只需下载一份包含命令行参数、命令行参数、协议主机端口、用户名的代理列表,并将其传递到位即可。

Ipburger 卷曲代理

所有这些都连接到住宅代理服务器,非常适合网络搜索或其他很酷的事情。

常见问题

为什么 cURL 不总是使用同一个代理?

It doesn’t have a way to utilize a single or specific pool of residential IPs from the list. The best option is to run multiple cURLs simultaneously from separate terminal windows, each on different residential proxies. This guarantees that every request gets its own pool of residential IP addresses.

可以混合使用 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"。它将显示手册页面。(不是你想的那样)。

In this Article:
Leave behind the complexities of web scraping.
Opt for IPBurger’s advanced web intelligence solutions to effortlessly collect real-time public data.
注册

更深入地了解

代理
AJ Tait
The Best Storm Proxies Alternative: Faster, Safer & More Affordable Proxies

Looking for a Storm Proxies Alternative? Storm Proxies sells the dream: simple, affordable proxies that “just work.” And for some users? It kind of delivers. Until it doesn’t. Because here’s the reality—if you’re pulling small data sets, running light scraping jobs, or dipping your toes into sneaker copping, Storm Proxies

代理
AJ Tait
The Best IPRoyal Alternative for Power, Control & Price

Outgrowing IPRoyal? Here’s the Smarter Alternative If you’ve been using IPRoyal, chances are it was for one simple reason—it’s cheap. And in the world of proxies, “cheap” can be enough to get you started. But here’s the thing about IPRoyal: it’s a gateway, not a long-term solution. At first, it

Scale Your Business
With The Most Advanced
Proxies On Earth
加入屡获殊荣的第一代理网络