在下一篇文章中,我们将看一下Wget。 必须说GNU Wget是 免费工具 允许从Web服务器下载内容 以一种简单而快速的方式。 它的名字来源于万维网(w)和单词get(英文 得到)。 这个名字的意思是: 从WWW获取.
如今,有数十种应用程序可以非常高效地下载文件。 它们大多数基于Web和桌面界面,并且针对所有操作系统而开发。 但是在Gnu / Linux(还有适用于Windows的版本)有 强大的下载管理器 wget文件。 它被认为是目前最强大的下载器。 支持协议,例如http,https和 FTP.
指数
用wget下载文件
下载档案
使用此工具的最简单方法是下载 指示文件 我们想要什么:
wget http://sitioweb.com/programa.tar.gz
使用不同的协议下载
作为一个好的下载管理器,有可能 一次请求多个下载。 我们甚至可以按相同顺序使用不同的协议:
wget http://sitioweb.com/programa.tar.gz ftp://otrositio.com/descargas/videos/archivo-video.mpg
通过扩展下载
另一种下载多个文件的方法 使用相同扩展名的文件,它将使用通配符星号:
wget<code class="language-bash" data-lang="bash">-r -A.pdf</code>http://sitioweb.com/*.pdf
该命令并不总是有效,因为某些服务器可能已禁止访问 wget的.
下载文件清单
如果我们要下载的文件是我们想要的,那么我们只需要保存它们 文件中的URL。 我们将创建一个名为 files.txt 我们将在命令中指定列表的名称。 必要的 每行仅放置一个网址 在files.txt中。
我们将用于下载创建的列表并将其保存在.txt文件中的命令如下:
wget -i archivos.txt
重新开始下载
如果出于某种原因下载被中断,我们将能够 从停止的地方继续下载 使用 选项c 使用wget命令:
wget -i -c archivos.txt
添加有关下载的日志
如果我们想获取有关下载的日志,为了 控制任何事件 在它上面,我们将不得不添加 -o选项 如下所示:
wget -o reporte.txt http://ejemplo.com/programa.tar.gz
限制下载带宽
在很长的下载时间内,我们可以 限制下载带宽。 这样一来,我们将阻止下载在整个下载期间占用所有带宽:
wget -o /reporte.log --limit-rate=50k ftp://ftp.centos.org/download/centos5-dvd.iso
使用用户名和密码下载
如果要从需要用户名/密码的站点下载,则只需使用以下选项:
wget --http-user=admin --http-password=12345 http://ejemplo.com/archivo.mp3
下载尝试
默认, 该程序进行了20次尝试建立连接的尝试 并开始下载,在非常饱和的站点中,即使尝试20次也有可能无法实现。 随着 选项t 增加更多尝试。
wget -t 50 http://ejemplo.com/pelicula.mpg
使用wget下载网站
Wget人的帮助
Wget不仅限于文件下载我们将能够下载整个页面。 我们将只需要编写类似以下内容的内容:
wget www.ejemplo.com
下载网站及其额外元素
随着 选项p 我们还将下载所有 页面上需要的其他元素 例如样式表,嵌入式图像等。
如果我们添加 选项r se 将递归下载多达5个级别 从站点:
wget -r www.ejemplo.com -o reporte.log
将链接转换为本地
默认情况下,站点内的链接指向整个域的地址。 如果我们以递归方式下载该网站,然后离线进行研究,则可以使用 转换链接选项 那会把他们变成 本地链接:
wget --convert-links -r http://www.sitio.com/
获取网站的完整副本
我们将有可能获得网站的完整副本。 这 –镜像选项 与使用 选项-r -l inf -N 这表示无限级别的递归并获得每个下载文件的原始时间戳。
wget --mirror http://www.sitio.com/
转换扩展
如果您下载整个站点以脱机查看它,则由于扩展名(例如.cgi,.asp或.php),可能无法打开几个下载的文件。 然后可以用 –html-extension选项 所有文件都将转换为.html扩展名。
wget --mirror --convert-links --html-extension http://www.ejemplo.com
这些只是一般准则 比使用Wget所能完成的要多。 谁想要可以咨询 在线手册 咨询这个出色的下载管理器为我们提供的所有可能性。
7条评论,留下您的评论
至于“按扩展名下载”,我已经停止阅读。 您无法下载不知道的内容。 除非所请求的目录允许列出文件且没有索引(并且两者都必须同时出现),否则您所说的将无法完成。 多么的水平。
你好鲁本,无知有点大胆。
您可以使用对Google的简单命令来完成您的评论:
文件类型:pdf网站:ubunlog.com
在此示例中,此博客中没有pdf,但是将域名更改为您喜欢的Web的末尾,您将看到查看某个Web类型的所有文件非常容易。
祝你今天过得愉快。
但是wget不会连接到Google以在URL中找到pdf。 如RubénCardenal所说,该Web目录必须是打开的,并且必须有由mod_autoindex或类似文件生成的索引页。
“此命令并不总是有效,因为某些服务器可能已阻止对wget的访问。”
之所以在本文中进行此修订,是因为我不同意它(尽管从技术上讲,它可以阻止某些Web代理进行HTTP标头请求并返回403“不允许”消息),我将解释原因:
默认情况下,所有Apache Web服务器(我谈论的是相当多的服务器)默认情况下都允许遍历(关于Wikipedia的出色文章,请阅读: https://es.wikipedia.org/wiki/Glob_(inform%C3%A1tica) .
在实践中,这是由先生指定的。 Rubén(他是对的),如果没有文件调用“ index.php”或“ index.html”(甚至简称为“ index”),服务器将悄悄返回文件和目录的列表(当然在格式的html页面,其中信息作为每个文件的网络链接)。 大多数Web服务器都通过.htacces文件(严格来说是Apache2)来禁用此功能,以确保安全。
这是wget的多功能性(请在Wikipedia上再次了解它的故事,这是您最了解的一个: https://es.wikipedia.org/wiki/GNU_Wget )以分析或“解析”所述信息,并仅提取我们要求的扩展名。
现在,如果由于某种原因该方法不起作用,我们可以尝试其他高级wget函数,我直接用英语引用:
您要从HTTP服务器上的目录下载所有GIF。 你尝试过 http://www.example.com/dir/*.gif’,但这没有用,因为HTTP检索不支持GLOBBING(我用大写字母表示)。 在这种情况下,请使用:
wget -r -l1 –无父级-A.gif http://www.example.com/dir/
更详细,但效果相同。 '-r -l1'表示以最大深度1进行递归检索(请参阅递归下载)。'-no-parent'表示将忽略对父目录的引用(请参见基于目录的限制),以及-A。 gif'表示仅下载GIF文件。 '-A«* .gif»也可以。
如果您以这种最后的方式运行,则wget将在我们工作的默认文件夹中为我们创建一个带有请求网址的文件夹,并且它将在必要时创建子目录并将其放置在其中,例如,要求。
--------
但是,如果仍然无法仅获取某些类型的文件(例如* .jpg),则必须使用参数«–page-conditions»,该参数会下载html页面的所有内部元素(图像,声音, css等)以及html页面本身(“ –page-conditions”可以缩写为“ -p”),这相当于下载“ mhtml”之类的内容 https://tools.ietf.org/html/rfc2557
希望这些信息对您有用。
谢谢你的笔记。 莎露2。
我认为您有一个错误,前两行具有相同的命令。
非常感谢,很好的教程!