wget实用程序允许您使用Linux命令行从Web上下载网页,文件和图像。
您可以单独使用一个wget命令从站点下载或设置输入文件以跨多个站点下载多个文件。
根据手册页面,即使用户已经退出系统,wget也可以使用。 要做到这一点,你可以使用nohup命令。
即使连接断开,wget实用程序也会重新尝试下载,如果可能的话,连接返回时,将从停止的位置恢复。
您可以使用wget下载整个网站,并将链接转换为指向本地资源,以便您可以离线查看网站。
wget的功能如下:
- 使用HTTP,HTTPS和FTP下载文件
- 恢复下载
- 将下载的网页中的绝对链接转换为相对URL,以便网站可以脱机浏览
- 支持HTTP代理和cookie
- 支持持久的HTTP连接
- 即使您未登录,也可以在后台运行
- 适用于Linux和Windows
如何使用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文件或图像文件。
考虑到这一点,您不必在输入文件中输入以下内容,因为它很耗时:
- http://www.myfileserver.com/file1.zip
- http://www.myfileserver.com/file2.zip
- http://www.myfileserver.com/file3.zip
如果您知道基本URL总是相同的,您可以在输入文件中指定以下内容:
- file1.zip
- file2.zip
- file3.zip
然后,您可以将基本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