我们使用联盟链接。它们让我们能够维持运营,而您无需承担任何费用。

如何使用 Wget 和代理:教程

Wget 是一款出色的工具,可用于快速下载 Web 内容。它还提供了通过代理服务器路由请求的灵活性。在这里,您将了解如何使用代理使用 Wget。

如何使用代理来使用 Wget

有许多用于下载 Web 内容的命令行工具,例如 卷曲。但是,如果您想在连接不稳定时处理递归下载和恢复任务,Wget 是您的最佳选择。

什么是 Wget?

wget 是一个 GNU项目 用于下载 HTTP(S) 和 则fTP(S) 文件。它是一种非交互式工具,因此在完成其他任务的同时在后台下载内容时特别有用。 

Wget 专门设计用于处理不稳定网络上的内容下载:如果您丢失互联网,该工具将在连接恢复后自动尝试恢复该任务。

Wget 通常用于类 Unix 操作系统,例如 Linux 和 macOS。不过,它也可用于 Windows。

Wget 的主要功能

尽管 Wget 于 90 年代首次推出,但由于其简单性和可靠性,它仍然被广泛使用。以下是 Wget 的一些主要功能:

  • 恢复中断的下载。 如果由于连接问题或系统关闭而导致下载中断,Wget 将在连接恢复后自动重试该任务 - 无需手动输入。 
  • 自动文件下载。 Wget 可以批量处理下载或安排重复任务。
  • 递归下载支持。 您可以使用 Wget 创建网站的本地副本以便离线查看或存档网站快照以供将来参考。
  • 对下载进行高度控制。 您可以编写 Wget 脚本来限制带宽、更改请求标头以及调整下载重试。
  • 代理支持。 如果您需要下载受地理限制或其他受保护的内容,Wget 支持 HTTP 和 HTTPS 代理。 

Wget 与 cURL:区别

Wget 和 cURL 都是用于数据传输的命令行工具。但它们的功能和用途略有不同。

威格特 主要用于 下载内容 来自网络。另一方面, 卷曲 是用来 数据传输 (上传和下载),以及使用 API。因此,cURL 功能更丰富,但也更复杂。

Wget 和 cURL 功能之间的比较。
Wget 和 cURL 功能之间的比较。

如何安装Wget

Wget 的安装过程很简单,但可能因您的操作系统而异。

作为命令行实用程序,Wget 在命令行界面中运行。换句话说,如果您有 Mac 或 Linux 计算机,那将是终端 终端。Windows 的默认设置是 CMD(命令提示符).

  • Windows 用户需要下载并安装 Wget 包 首先。完成后,复制并粘贴 wget程序 文件到 system32 文件夹。最后,运行 wget的 在命令提示符(CMD)中检查它是否有效。
  • 对于那些 MacOS,你需要获得 家酿 通过运行包管理器 xcode-select –安装 在你的终端中。  然后,您可以通过运行来安装 Wget wget -v.

安装 Wget 后,还需要有配置文件 - .wgetrc。 当您需要向 Wget 添加代理设置时它将很有用。

在上创建文件 Windows操作系统, 跑 C:\Users\你的用户名\.wgetrc 在 CMD 中。 MacOS 用户应该使用 运行 -e ~/.wgetrc 在终端中。如果系统中不存在该文件,此命令将自动创建并打开它。 

如何使用 Wget

让我们看看如何使用 Wget 下载文件并从网页检索链接。

使用 Wget 下载单个文件

使用 Wget 检索单个文件很简单 - 打开命令行界面并运行 wget的 替换为要检索的文件的 URL:

				
					wget https://example.com/new-file.txt

				
			

使用 Wget 下载多个文件

有几种方法可以使用 Wget 下载多个文件。第一种方法是发送所有 URL,并以空格分隔。以下是包含三个文件的示例:

				
					~$ wget https://example.com/file1.txt https://example.com/file2.txt https://example.com/file3.txt

				
			

如果您的 URL 数量有限,这种方法是理想的选择。但是,如果您要下载数十个文件,则方法会变得复杂得多。

第二种方法是将所有 URL 记在 。文本 文件,并使用 -i or –输入文件 选项。在这种情况下,Wget 将从文件中读取 URL 并下载它们。 

假设你给文件命名 我的网址.txt。 您可以使用 –输入文件 参数:

				
					~$ wget --input-file=myurls.txt

				
			

使用 Wget 从网页获取链接

您还可以使用 Wget 直接从网页提取链接。 

如果你想让 Wget 抓取一个页面,找到所有链接,并列出它们 无需下载,你可以运行这个命令:

				
					wget --spider --force-html -r -l1 https://example.com 2>&1 | grep -oE 'http[s]?://[^ ]+'

				
			

如果你希望 Wget 找到 URL 并为你下载,只需删除 -蜘蛛 以及 –force.html 抓取并解析 HTML 页面的命令。您的命令应该如下所示:

				
					wget -r -l1 https://example.com

				
			

使用 Wget 更改用户代理

如果你打算经常使用 Wget 下载,则应修改用户代理字符串以限制下载速度。你可以通过编辑 .wgetrc 文件,或者编写一次性使用的命令。

修改单次下载的 User-Agent

无论你在 Windows or macos,更改用户代理的语法相同。请确保使用新浏览器版本的用户代理字符串。  

				
					wget --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" https://example.com
				
			

永久修改用户代理

如果你想始终使用不同的用户代理,你可以更改 Wget 配置中的 .wgetrc 文件。您在此处放置的自定义用户代理字符串将用于所有未来的作业,除非您对其进行更改。

只需找到 .wgetrc 归档并添加 用户代理 = “自定义用户代理”

它应该看起来像这样:

				
					user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"
				
			

如何使用代理来使用 Wget

您可以在配置文件中设置代理设置,也可以在命令行中传递代理设置进行一次性下载。

Wget 仅支持 HTTP 和 HTTPS 代理,因此请确保您没有使用 SOCKS5 代理服务器。

如果你正在寻找代理服务器, 免费代理 可能适用于简单的网站。对于更大规模的网站,我们建议选择付费代理服务器提供商之一。您可以在此处找到我们的建议:

发现顶级代理服务提供商——经过彻底的测试和排名,以帮助您选择。

使用 Wget 和代理进行单次下载

对于使用代理进行多次下载,我们建议在 .wgetrc 文件代替。 但是,如果你打算使用代理,你也可以为 Wget 指定代理设置 一旦. 而不是修改 .wgetrc 文件,您可以运行命令 直接在终端或 CMD 中。

它应该是这样的:

				
					wget -e use_proxy=yes -e http_proxy=https://username:password@proxyserver:port https://example.com/file.zip
				
			

注意: 该示例使用 HTTP_PROXY,但 Wget 也支持 HTTPS 代理,因此您可以使用 https_proxy 您的代理设置。

检查当前 IP 地址

检查您的 IP 地址是否确实已更改为代理服务器的 IP 地址可能会很有用。 您可以通过向 HTTPBin 使用 Wget 的 IP 端点:

				
					wget -qO- https://httpbin.io/ip

				
			

您应该收到类似以下的输出:

				
					{
“origin”: “123.45.67.89:000”
}

				
			

注意: 这不是一个真实的 IP 地址,而是一个让您熟悉格式的示例。

为 Wget 设置代理以供多种用途

要为 Wget 设置代理,您首先必须获取代理服务器的详细信息。然后,在 .wgetrc 保存 Wget 配置内容的文件。

将代理设置添加到文件:

				
					use_proxy = on
http_proxy = http://proxyserver:port
https_proxy = https://proxyserver:port

				
			

注意: 编辑文件时使用实际的代理服务器地址和正确的端口号。这些将由您的代理服务提供商提供给您。

一旦您记下代理设置,您就可以向 HTTPBin 发送请求来检查 IP 地址是否已更改。

Wget 代理身份验证

大多数信誉良好的代理服务器提供商都要求验证身份才能访问代理服务器。通常,您需要指定用户名和密码。

您可以通过在 .wgetrc 文件中。

				
					proxy_user = YOUR_USERNAME
proxy_password = YOUR_PASSWORD

				
			

因此,文件的整个添加部分应如下所示:

				
					use_proxy = on
http_proxy = http://proxyserver:port
https_proxy = https://proxyserver:port
proxy_user = YOUR_USERNAME
proxy_password = YOUR_PASSWORD

				
			
Adam Dubois 的图片
亚当·杜波依斯
代理极客和开发人员。