wget和curl的区别

wget和curl的区别

wget和curl是在没有任何GUI或软件的情况下用于HTTP请求的命令,我们使用Linux中的终端提供相应的输出或消息。这些命令对于网页抓取、网页抓取、测试RESTful api等非常有用。

Curl

Curl是一个免费的开源命令行实用工具,它允许用户和开发人员在没有任何UI交互的情况下传输数据。广泛应用于路由器、手机等。

Protocols Supported : HTTP/HTTPS、FTP、SFTP、SCP、IMAP、LDAP/LDAPS、SMB/SMB、TELNET、POP3、GOPHER等。

Wget

wget或GNU wget是另一个开源的免费命令行工具,用于使用HTTP/HTTPS、FTP和FTPS传输文件。

功能 :递归下载,带宽控制,恢复中断传输,后台下载,递归镜像文件和目录,等等。

安装 wget 和curl

输入如下命令安装wget:

sudo apt-get install wget

wget和curl的区别

要安装curl,输入以下命令:

sudo apt-get install curl

wget和curl的区别

示例: 在下面的例子中,我们将通过curl和wget请求HTTP/HTTPS并下载一个网站页面。

使用curl命令保存一个网页。

curl https://geeksforgeeks.org -o geeks.html

输出: 该文件被下载为geeks.html

wget和curl的区别

使用wget命令保存一个网页。

wget https://practice.geeksforgeeks.org/jobs

输出

wget和curl的区别

我们使用curl命令获得了来自wget和geeks.html的作业文件。

示例 2: 在下面的示例中,我们将通过curl和wget学习FTP协议请求,并下载文件。

要从域名(比如GeeksforGeeks徽标)从wget下载文件,可以使用以下命令。

wget https://media.geeksforgeeks.org/wp-content/cdn-uploads/20210420155809/gfg-new-logo.png

输出信息如下:—

wget和curl的区别

使用curl命令,我们可以指定名称,例如,logo,然后按如下方式下载:

Curl https://media.geeksforgeeks.org/wp-content/cdn-uploads/20210420155809/gfg-new-logo.png -o logo.png

输出如下:

wget和curl的区别

Curl还支持上传文件到web。我们需要添加标志-T来指定上传。我们使用以下命令将文件上载到任何URL。

curl -T ” geeks_logo.png ” ftp://www.geeksforgeeks.org/upload/to/url/

示例 3: Recursive downloading

Wget工具支持递归下载,我们添加了递归标志。

wget –recursive https://practice.geeksforgeeks.org/jobs

此命令将所有相关资源下载到一个以网页URL命名的文件夹中。输出如下:

终端(下载进行中)

wget和curl的区别

已下载的文件及文件夹

wget和curl的区别

在robots.txt中添加的文件路径将被忽略。要关闭这个特性,添加-e标志,如下:

Wget -e robots=off https://practice.geeksforgeeks.org/jobs

下载的文档采用广度优先搜索的形式。但是可以通过使用-l标记并设置深度来重写它。默认最大深度为5。

Wget‐l=1‐‐recursive‐‐no-parent https://practice.geeksforgeeks.org/jobs

wget和curl的区别

wget和curl的区别

wget curl
Wget是一个简单的传输命令行实用程序。 Curl有更多的功能。libcurl库可以用作GUI库。
对不同协议的支持有限。 对协议有更多的支持。它支持双向HTTP。
递归下载支持。其他功能包括带宽控制、恢复中断传输、后台下载、递归镜像文件和目录等。 不支持递归下载。
Wget支持的协议:HTTP、HTTPS和FTP。 支持curl的协议:DICT、FILE、FTP、FTPS、Gopher、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、RTMP、RTSP、SCP、SFTP、SMB、SMBS、SMTP、SMTPS、Telnet和TFT。
wget更适用于Linux操作系统。 Curl可以在多个平台上使用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程