这本循序渐进的指南将解释如何在代理服务器上使用cURL或简称curl。 它涵盖了从安装到解释设置代理的各种选项的所有方面。
我们没有针对任何特定的代理服务。 因此,本教程适用于所有代理服务器。 您只需知道服务器的详细信息和凭据。
这是一本技术性较强的教程,希望读者对以下内容有基本的了解什么是代理.对于那些从以下方面入手的人来说,它将特别有趣和有用网页搜索.
cURL 是一种使用 url 发送和接收数据的命令行工具。 让我们看看使用 curl 的最简单示例。 打开终端或命令提示符,输入以下命令并按 Enter:
curl https://万维网.谷歌.......(中文
链接至 GitHub这将获取页面的 HTML 并打印到控制台。
curl https://万维网.谷歌.......(中文-我
这将打印文件信息。
HTTP/1.1 200 认可内容-类型:文本/网页;字符集=.ISO-8859-1
问题"什么是 cURL?"在我们之前的一篇文章中也有解答。 如果您想了解它是如何成为如此普遍的资产,我们建议您阅读这篇文章。
许多 Linux 发行版和 MacOS 都提供了 cURL。 现在,Windows 10 也提供了该功能。
如果你的 Linux 发行版没有提供,你可以运行 install 命令来安装。 例如,在 Ubuntu 上,打开终端并运行此命令:
sudo apt install curl
链接至 GitHub如果你运行的是旧版本的 Windows 系统,或者你想安装另一个版本,你可以从官方下载页面.
无论使用哪种代理服务,您都需要以下信息才能使用代理服务:
代理服务器地址
港口
协议
用户名(如果需要验证)
密码(如果需要验证)
在本教程中,我们假设代理服务器是127.0.0.1端口为1234, 用户名是用户nonepwd. 我们将研究涵盖各种协议的多个示例。
注意。如果您所在的网络使用 NTLM 身份验证,您可以使用交换机-proxy-ntlm同时运行 curl。 同样、-代理-摘要可用于摘要验证。 您可以运行curl -help. 本教程将举例说明需要指定用户名和密码的情况。
下一节将介绍第一种curl代理情况,这也是最常见的情况--使用curl代理HTTP和HTTPS。
如果你还记得,我们曾这样使用不带代理的 curl:
curl https://httpbin.组织/知识产权
这个网站对于测试代理尤其有用,因为该页面的输出是源 IP 地址。 如果您正确使用了代理,该页面将返回一个与您的机器不同的 IP 地址,即代理的 IP 地址。
使用代理命令运行curl有多种方法。 下一节将介绍如何以命令行参数的形式发送代理详细信息。 此外,我们还将探讨如何将HTTPS 代理服务器.
注意。所有命令行选项或开关都区分大小写。 例如-f指示curl静默失败,而-F表示要提交的表格。
打开终端并键入以下命令,然后按 Enter:
卷曲--帮助
链接至 GitHub输出结果将是一大串选项。 其中一个选项看起来是这样的
-x, --代表[协议://]主机[:港口]
链接至 GitHub请注意x很小,而且区分大小写。 可以使用-x或-代理开关。 两者意思相同。 所有使用代理的 curl 命令都是一样的:
卷曲-x ;
链接至 GitHub或
卷曲--代表 ;
链接至 GitHub注意。如果出现 SSL 证书错误,请添加-k(注意小k)到卷曲命令。 使用 SSL 时,这将允许不安全的服务器连接。
卷曲--代表 ; -k
链接至 GitHub您可能已经注意到,代理网址和目标网址都用双引号包围。 建议采用这种做法来处理 url 中的特殊字符。
另一个值得注意的地方是,默认代理协议是 http。 因此,以下两条命令的作用完全相同:
卷曲--代表 ;卷曲--代表"user:pwd@127.0.0.1:1234" ;
链接至 GitHub另一种使用curl代理的方法是设置环境变量http_proxy和https_proxy.
请注意,使用环境变量设置代理仅适用于 MacOS 和 Linux。 对于 Windows,请参阅下一节,了解如何使用_curlrc_curlrc 文件。
如果查看这些变量名的第一部分,就会清楚地看到这些代理服务器将使用的协议。 这与代理服务器本身使用的协议无关。
http_proxy- 代理将用于访问使用 http 协议的地址
https_proxy- 代理将用于访问使用 https 协议的地址
只需设置变量http_proxy为 http 代理地址和https_proxy来设置 https 代理地址。 打开终端,运行这两条命令。
出口http_proxy= 出口https_proxy=
链接至 GitHub运行这两条命令后,运行卷曲通常情况下。
卷曲;
链接至 GitHub如果看到 SSL 证书错误,请添加 -k 以忽略这些错误。
另外需要注意的是,这些变量适用于整个系统。 如果不希望出现这种行为,可以通过取消设置这两个变量来关闭全局代理:
取消设置 http_proxy 取消设置 https_proxy
链接至 GitHub请参阅下一节,仅为卷曲而不是全系统。
如果你希望为 curl 提供代理,而不希望为其他程序提供代理,可以通过创建一个curl 配置文件.
对于 Linux 和 MacOS,打开终端并导航到主目录。 如果已经有一个.curlrc文件,打开它。 如果没有,则创建一个新文件。 以下是可以运行的命令集:
CD~纳米.curlrc
链接至 GitHub在该文件中,添加这一行:
代表=
链接至 GitHub保存文件。 现在,带代理的 curl 就可以使用了。 只需运行卷曲正常情况下,它会从.curlrc文件
卷曲;
链接至 GitHub在 Windows 系统中,文件名为_curlrc. 该文件可放置在%APPDATA目录。
要找到%APPDATA,打开命令提示符并运行以下命令:
回响%APPDATA%
链接至 GitHub该目录将类似于C:\Users\<your_user>\AppData\Roaming. 现在进入该目录,创建一个新文件_curlrc并添加这一行设置代理:
代表=
链接至 GitHub在 Linux、MacOS 和 Windows 中的工作方式完全相同。
如果全局设置了代理,或通过修改.curlrc文件,但仍可重写以设置另一个代理,甚至绕过它。
要覆盖一个请求的代理,请使用-x或-代理照常切换:
卷曲--代表; ;
链接至 GitHub如果想完全绕过代理处理请求,可以使用 cURL noproxy 命令,通过传递-无代理随后是“*”. 这将指示 cURL 对所有 URL 都不使用代理。
卷曲--noproxy"*" ;
链接至 GitHub如果你有许多curl请求需要在没有代理的情况下执行,但又不能更改系统范围内的代理设置,下面的部分将向你展示具体的操作方法。
本提示仅供高级用户使用。 如果您不知道什么是 .NET,请点击这里。bashrc您可以跳过本节。
您可以在.bashrc文件来设置代理和取消代理。 例如,打开.bashrc文件,并添加这几行:
别名 proxyon=#@#"export http_proxy=' https_proxy=' 别名 proxyoff="unset http_proxy;unset https_proxy";
链接至 GitHub添加这些行之后,保存.bashrc并将 shell 更新为.bashrc. 为此,请在终端运行此命令:
. ~/.bashrc
链接至 GitHub现在,无论何时需要开启代理,都可以快速开启代理,运行一条或多条 curl 命令,然后像这样关闭代理:
proxyon curl;卷曲;代理关闭
链接至 GitHub如果代理服务器使用的是 socks 协议,语法不变:
卷曲-x"socks5: ;
链接至 GitHub同样,根据 socks 版本的不同,可以使用 socks4://、socks4a://、socks5:// 或 socks5h://。
或者,卷曲袜子代理也可以使用开关-袜子5而不是-x. 您可以使用相同的命令,但使用不同的开关:用户名和密码可以使用-代理用户开关。
卷曲--袜子5"127.0.0.1:1234" ; --代表-用户用户:pwd
再来、-袜子4, -袜子4a或-袜子5可以使用,具体取决于版本。
cURL 是一个非常强大的自动化工具,可以说是在代理支持方面最好的命令行界面。 最后,由于 libcurl 与 php 配合得非常好,许多网络应用程序都将其用于网络搜刮项目,因此它是任何网络搜刮程序的必备工具。
点击这里并查看 GitHub 上的存储库,以查找本文中使用的完整代码。 您还可以在使用 Selenium 进行网络刮擦和其他一些有用的库,如美丽汤或lxml 教程在我们的博客中。
关于作者
伊维塔-维斯托斯基特
首席内容经理
Iveta Vistorskyte 是 Oxylabs 的首席内容经理。 作为一名作家和挑战者,她在成长过程中决定欢迎自己来到技术领域,并立即对这一领域产生了浓厚的兴趣。 不工作的时候,她可能会一边听着喜欢的音乐,一边和朋友玩棋盘游戏。
Oxylabs 博客上的所有信息均按原样提供,仅供参考。 对于您使用 Oxylabs 博客或其中可能链接的任何第三方网站上的任何信息,我们不作任何陈述,也不承担任何责任。 在进行任何形式的搜刮活动之前,您应咨询您的法律顾问,并仔细阅读特定网站的服务条款或获得搜刮许可。
获取数据采集领域的最新消息
用于无阻塞数据采集的 Web Scraper API
从任何网站轻松提取高质量数据,同时避免验证码和 IP 屏蔽。