如何使用wget Linux命令下载网页和文件

wget实用程序允许您使用Linux命令行从Web上下载网页,文件和图像。

您可以单独使用一个wget命令从站点下载或设置输入文件以跨多个站点下载多个文件。

根据手册页面,即使用户已经退出系统,wget也可以使用。 要做到这一点,你可以使用nohup命令。

即使连接断开,wget实用程序也会重新尝试下载,如果可能的话,连接返回时,将从停止的位置恢复。

您可以使用wget下载整个网站,并将链接转换为指向本地资源,以便您可以离线查看网站。

wget的功能如下:

如何使用wget下载网站

对于本指南,我会告诉你如何下载我的个人博客。

wget www.everydaylinuxuser.com

值得使用mkdir命令在您的机器上创建自己的文件夹,然后使用cd命令移动到文件夹中。

例如:

mkdir everydaylinuxuser
cd每日使用者
wget www.everydaylinuxuser.com

结果是一个index.html文件。 就其本身而言,该文件相当无用,因为内容仍然来自Google,图片和样式表仍然保留在Google上。

要下载完整站点和所有页面,可以使用以下命令:

wget -r www.everydaylinuxuser.com

这会递归地下载页面,最多可达5层深度。

5级深度可能不足以从网站获取所有内容。 您可以使用-l开关设置您想要进入的级别数量,如下所示:

wget -r -l10 www.everydaylinuxuser.com

如果你想要无限递归,你可以使用下面的代码:

wget -r -l inf www.everydaylinuxuser.com

你也可以用0代替inf,这意味着同样的事情。

还有一个问题。 您可能会在本地获取所有页面,但页面中的所有链接仍指向其原始位置。 因此无法在页面上的链接之间进行本地点击。

您可以通过使用-k开关来解决此问题,该开关将页面上的所有链接转换为指向其本地下载的等效项,如下所示:

wget -r -k www.everydaylinuxuser.com

如果你想得到一个网站的完整镜像,你可以简单地使用下面的开关,它省去了使用-r -k和-l开关的必要性。

wget -m www.everydaylinuxuser.com

因此,如果您拥有自己的网站,则可以使用这一简单命令进行完整备份。

运行wget作为后台命令

您可以让wget作为后台命令运行,让您可以在文件下载时在终端窗口中继续工作。

只需使用以下命令:

wget -b www.everydaylinuxuser.com

你当然可以组合开关。 要在镜像站点的同时在后台运行wget命令,您可以使用以下命令:

wget -b -m www.everydaylinuxuser.com

您可以进一步简化如下:

wget -bm www.everydaylinuxuser.com

记录

如果您在后台运行wget命令,则不会看到它发送到屏幕的任何正常消息。

您可以将所有这些消息发送到日志文件,以便您可以随时使用tail命令检查进度。

要将wget命令的信息输出到日志文件,请使用以下命令:

wget -o / path / to / mylogfile www.everydaylinuxuser.com

当然,相反,不需要记录,也不需要输出到屏幕。 要省略所有输出,请使用以下命令:

wget -q www.everydaylinuxuser.com

从多个站点下载

您可以设置一个输入文件从多个不同的站点下载。

使用您最喜欢的编辑器甚至是cat命令打开一个文件,并简单地列出文件每一行下载的站点或链接。

保存该文件,然后运行以下wget命令:

wget -i / path / to / inputfile

除了备份您自己的网站或者可能找到要下载的内容来阅读火车之外,您不太可能想要下载整个网站。

您更可能下载带有图片的单个URL或者下载文件,如zip文件,ISO文件或图像文件。

考虑到这一点,您不必在输入文件中输入以下内容,因为它很耗时:

如果您知道基本URL总是相同的,您可以在输入文件中指定以下内容:

然后,您可以将基本URL作为wget命令的一部分提供,如下所示:

wget -B http://www.myfileserver.com -i / path / to / inputfile

重试选项

如果您已经在输入文件中设置了一个文件队列来下载,并且让您的计算机整夜运行以下载文件,那么当您在早上下来时发现它停留在第一个文件上时会很恼火,并且整晚都在重试。

您可以使用以下开关指定重试次数:

wget -t 10 -i / path / to / inputfile

您可能希望将上述命令与-T开关一起使用,以便您按如下方式指定超时时间:

wget -t 10 -T 10 -i / path / to / inputfile

上述命令将重试10次,并尝试连接文件中每个链接10秒钟。

当您在慢速宽带连接上部分下载了4 GB文件的75%时,这也是相当烦人的,只能让您的连接退出。

您可以使用wget通过使用以下命令从停止下载的位置重试:

wget -c www.myfileserver.com/file1.zip

如果您正在锤击服务器,主机可能不会太喜欢它,并且可能会阻止或仅仅杀死您的请求。

您可以指定一个等待期限,指定每次检索之间的等待时间,如下所示:

wget -w 60 -i / path / to / inputfile

上述命令将在每次下载之间等待60秒。 如果您从单一来源下载大量文件,这非常有用。

有些网络主机可能会发现频率,无论如何也会阻止你。 您可以随意设置等待时间,使其看起来像您没有使用程序,如下所示:

wget --random-wait -i / path / to / inputfile

保护下载限制

许多互联网服务提供商仍然为您的宽带使用申请下载限制,特别是如果您居住在城市之外。

您可能需要添加一个配额,以便您不会泄露该下载限制。 你可以通过以下方式来做到这一点:

wget -q 100m -i / path / to / inputfile

请注意,-q命令不适用于单个文件。

因此,如果下载大小为2 GB的文件,使用-q 1000m将不会停止文件下载。

配额仅适用于从网站递归下载或使用输入文件时。

通过安全

有些网站要求您登录才能访问您希望下载的内容。

您可以使用以下开关指定用户名和密码。

wget --user = yourusername --password = yourpassword

请注意,在多用户系统中,如果有人运行ps命令,他们将能够看到您的用户名和密码。

其他下载选项

默认情况下,-r开关将递归下载内容,并将创建目录。

您可以使用以下开关将所有文件下载到单个文件夹中:

wget -nd -r

与此相反的是强制创建可以使用以下命令实现的目录:

wget -x -r

如何下载某些文件类型

如果您想从网站递归下载,但只想下载特定文件类型(如mp3或png等图像),则可以使用以下语法:

wget -A“* .mp3”-r

与此相反的是忽略某些文件。 也许你不想下载可执行文件。 在这种情况下,您可以使用以下语法:

wget -R“* .exe”-r

Cliget

有一个名为cliget的Firefox插件。 您可以通过以下方式将其添加到Firefox。

访问https://addons.mozilla.org/en-US/firefox/addon/cliget/并点击“添加到Firefox”按钮。

出现时单击安装按钮。 您将需要重新启动Firefox。

要使用cliget,请访问您要下载的页面或文件,然后右键单击。 上下文菜单将出现,称为cliget,并且会有“复制到wget”和“复制到卷曲”的选项。

点击“复制到wget”选项并打开终端窗口,然后右键单击并粘贴。 适当的wget命令将被粘贴到窗口中。

基本上,这节省了你不得不自己输入命令。

概要

wget命令作为大量的选项和开关。

因此,通过在终端窗口中输入以下内容可以阅读wget的手册页

男人wget