当前位置: 首页 > 科技观察

wget命令的八个有用用法

时间:2023-03-18 19:48:12 科技观察

wget是一个免费的实用程序,可以从Web下载文件,它的工作原理是从Internet获取数据并将其保存到本地文件或在您的终端上显示。这其实就是你使用的浏览器,比如Firefox或者Chrome,实际上是在内部调用wget程序来下载数据的。本文介绍了wget命令的8种常用使用方法,希望对小伙伴们有所帮助。1、使用wget命令下载文件可以使用wget命令从指定链接下载文件。默认情况下,下载的文件保存到当前工作目录中的同名文件中。$wgethttp://www.lxlinux.net--2021-09-2017:23:47--http://www.lxlinux.net/Resolvingwww.lxlinux.net...93.184.216.34,2606:2800:220:1:248:1893:25c8:1946Connectingtowww.lxlinux.net|93.184.216.34|:80...connected.HTTPrequestsent,awaitingresponse...200OKLength:1256(1.2K)[text/html]Savingto:'index.html'如果你不想把下载的文件保存在本地,而只是想把它显示在标准输出(stdout)上,你可以使用--output-document选项,后面跟一个-号。$wgethttp://www.lxlinux.net--output-document-|head-n4ExampleDomain如果要重命名下载的文件,可以使用--output-document选项(或更方便地,直接使用-O):$wgethttp://www.lxlinux.net--output-documentnewfile.html2。如果您要下载的文件很大,由于网络原因,可能会出现一次无法下载完成的情况。如果每次都要重新下载,那就不知道要等到猴年了。在这种情况下,您可以使用--continue选项(或-c)恢复上传。也就是说,如果由于各种原因导致下载中断,使用该选项,可以继续上次的下载,无需重新下载。$wget--继续https://www.lxlinux.net/linux-distro.iso3。下载一系列文件如果你下载的不是一个大文件,而是需要很多小文件,那么wget命令也可以帮你轻松搞定。但是,这里仍然可以使用一些bash语法来使事情正常进行。一般来说,这些文件的名字都有一定的规则,比如:file_1.txt、file_2.txt、file_3.txt等,这时就需要使用这个命令:$wgethttp://www.lxlinux.net/file_{1..4}.txt4。镜像整个站点如果你想下载一个网站的整个站点,包括它的目录??结构,那么你需要使用--mirror选项。该选项等同于--recursive--levelinf--timestamping--no-remove-listing,表示无限递归,可以下载指定域的所有内容。如果您使用wget存档您的网站,选项--no-cookies--page-requisites--convert-links也可用于确保每个页面都是最新的和完整的。5、修改HTML请求头学过网络通信的人都知道,HTTP数据包中包含了很多元素。其中,HTTP头是数据包的起始部分。当您使用浏览器浏览网页时,您的浏览器会向服务器发送HTTP请求标头。究竟送了什么?可以使用--debug选项查看wget为每个请求发送的头信息:$wget--debugwww.lxlinux.net---requestbegin---GET/HTTP/1.1User-Agent:Wget/1.19.5(linux-gnu)Accept:*/*Accept-Encoding:identityHost:www.lxlinux.netConnection:Keep-Alive---requestend---您可以使用--header选项修改请求标头。你为什么要这样做?其实有很多使用场景。例如,有时出于测试目的,有必要模拟特定浏览器发出的请求。比如你想模拟Edge浏览器发送的请求,可以这样做:$wget--debug--header="User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/91.0.4472.124Safari/537.36Edg/91.0.864.59"http://www.lxlinux.net另外,你也可以伪装成特定的移动设备(比如iPhone):$wget--debug\--header="User-Agent:Mozilla/5.0(iPhone;CPUiPhoneOS13_5_1likeMacOSX)AppleWebKit/605.1.15(KHTML,likeGecko)Version/13.1.1Mobile/15E148Safari/604.1"\HTTP://www.lxlinux.net6.标头的发送方式与浏览器请求发送标头信息的方式相同,该信息也包含在响应中。同样,您可以使用--debug选项查看响应标头:$wget--debugwww.lxlinux.net[...]---responsebegin---HTTP/1.1200OKAccept-Ranges:bytesAge:188102Cache-Control:max-age=604800Content-Type:text/html;charset=UTF-8Etag:"3147526947"Server:ECS(sab/574F)Vary:Accept-EncodingX-Cache:HITContent-Length:1256---responseend---200OKRegisteredsocket3forpersistentreuse.URIcontentencoding='UTF-8'Length:1256(1.2K)[text/html]Savingto:'index.html'7.Response301Response熟悉网络协议的人都知道,200响应代码意味着一切都在按预期进行。另一方面,301响应意味着URL指向了不同的网站。这种情况下,如果需要下载文件,就需要使用wget的重定向功能。所以,如果遇到301响应,则需要使用--max-redirect选项。如果您不想重定向,可以将--max-redirect设置为0。$wget--max-redirect0http://www.lxlinux.net--2021-09-2111:01:35--http://www.lxlinux.net/Resolvingwww.lxlinux.net...192.0.43.8,2001:500:88:200::8Connectingtowww.lxlinux.net|192.0.43.8|:80...connected.HTTPrequestsent,awaitingresponse...301MovedPermanentlyLocation:https://www.www.lxlinux.net/[如下]0redirectionsexceeded。或者,您可以将此设置为其他数字以控制wget遵循的重定向数量。8.扩展短链接有时候,我们需要将长链接转换成短链接。例如,在文本框填写信息时,有时文本框对字符长度有限制,短链接可以大大减少字符数。除了借助第三方平台,其实我们可以直接使用wget命令将短链接恢复为长链接。这里仍然使用--max-redirect选项:$wget--max-redirect0"https://bit.ly/2yDyS4T"--2021-09-2111:32:04--https://bit.ly/2yDyS4TResolvingbit.ly...67.199.248.10,67.199.248.11Connectingtobit.ly|67.199.248.10|:443...connected.HTTPrequestsent,awaitingresponse...301MovedPermanentlyLocation:http://www.lxlinux.net/[following]超过0个重定向。在输出的倒数第二行,在Location部分,你会看到短链展开后的真面目。