VPN技术 · 2023年11月10日 0

使用wget下载文件

wget命令(下载)

当前所在位置:首页 » 网络管理 » wget

wget命令

网络应用

wget命令用于从指定的URL下载文件。它具备很高的稳定性,能够在带宽受限和网络不稳定的情况下良好运行。如果下载过程中因网络问题而失败,wget会不断尝试,直至文件下载完成。若服务器中断下载,wget会自动重新连接并从中断处继续下载,这在下载大文件时尤其有用,特别是当服务器限制连接时间时。

语法

wget(选项)(参数)

选项

-a<日志文件>:在指定的日志文件中记录执行过程; -A<后缀名>:指定要下载文件的后缀名,多个后缀名用逗号分隔; -b:后台运行wget; -B<连接地址>:设置参考连接的基础地址; -c:继续上次未完成的下载; -C<标志>:设置服务器数据块功能标志,on为激活,off为关闭,默认值为on; -d:调试模式运行; -D<域名列表>:设置域名列表,域名间用逗号分隔; -e<指令>:执行指定的指令; -h:显示帮助信息; -i<文件>:从指定文件获取要下载的URL; -l<目录列表>:设置目录列表,多个目录用逗号分隔; -L:仅顺着关联的链接下载; -r:递归下载; -nc:文件存在时不覆盖原有文件; -nv:仅显示更新和错误信息; -q:不显示执行过程; -nh:不查询主机名称; -v:显示详细执行过程; -V:显示版本信息; --passive-ftp:使用被动模式连接FTP服务器; --follow-ftp:从HTML文件中下载FTP连接文件。

参数

URL:指定要下载的URL地址。

实例

使用wget下载单个文件

wget http://www.linuxde.net/testfile.zip

此示例从网络下载一个文件并保存在当前目录,下载过程中会显示进度条,包括下载完成百分比、已下载字节、当前下载速度和剩余时间。

下载并以不同的文件名保存

wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080

wget默认会使用URL中最后一个符合/的后面的字符作为文件名,因此对于动态链接的下载通常文件名可能不正确。

错误:以下示例会下载一个文件并以名称download.aspx?id=1080保存:

wget http://www.linuxde.net/download?id=1

即使下载的文件是zip格式,它仍然以download.php?id=1080命名。

正确:为避免此问题,可以使用-O参数指定文件名:

wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080

wget限速下载

wget --limit-rate=300k http://www.linuxde.net/testfile.zip

执行wget时,默认会使用全部带宽进行下载。如果需要下载大文件而同时进行其他下载,限制下载速度是必要的。

使用wget断点续传

wget -c http://www.linuxde.net/testfile.zip

使用-c参数可以重新启动中断的下载,这对于大文件下载中因网络问题而中断时尤为重要,可以继续下载而无需重新开始。

使用wget后台下载

wget -b http://www.linuxde.net/testfile.zip

当下载非常大的文件时,可以使用-b参数进行后台下载。可以通过以下命令查看下载进度:

tail -f wget-log

伪装代理名称下载

wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" http://www.linuxde.net/testfile.zip

某些网站可能会根据代理名称拒绝非浏览器的下载请求,但可以通过–user-agent参数进行伪装。

测试下载链接

如果计划进行定时下载,应在预定时间测试下载链接的有效性。可以增加–spider参数进行检查。

wget --spider URL

如果下载链接有效,将显示:

Spider mode enabled. Check if remote file exists. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Remote file exists and could contain further links, but recursion is disabled -- not retrieving.

这确保下载能按时进行,若链接错误则会显示如下错误:

wget --spider url Spider mode enabled. Check if remote file exists. HTTP request sent, awaiting response... 404 Not Found Remote file does not exist -- broken link!!!

–spider参数可用于以下情况:

  • 定时下载前进行检查
  • 定期检测网站是否可用
  • 检查网站页面的死链接

增加重试次数

wget --tries=40 URL

在网络问题或大文件下载失败的情况下,wget默认重试20次连接。如果需要,可以使用–tries增加重试次数。

下载多个文件

wget -i filelist.txt

首先,保存一份下载链接文件:

cat > filelist.txt url1 url2 url3 url4

然后使用该文件和-i参数进行下载。

镜像网站

wget --mirror -p --convert-links -P ./LOCAL URL

下载整个网站到本地。

  • --mirror开启镜像下载。
  • -p下载所有为了HTML页面正常显示所需的文件。
  • --convert-links下载后转换为本地链接。
  • -P ./LOCAL将所有文件和目录保存在指定的本地目录。

过滤指定格式下载

wget --reject=gif url

下载网站时,如果不希望下载图片,可以使用此命令。

将下载信息存入日志文件

wget -o download.log URL

如果希望下载信息不直接在终端显示而保存到日志文件中,可以使用此选项。

限制总下载文件大小

wget -Q5m -i filelist.txt

当希望下载的文件超过5M并退出下载时,可以使用此参数。请注意,此参数对单个文件下载无效,只在递归下载时有效。

下载指定格式文件

wget -r -A.pdf url

可以在以下情况使用此功能:

  • 下载网站上所有图片。
  • 下载网站上所有视频。
  • 下载网站上所有PDF文件。

FTP下载

wget ftp-url wget --ftp-user=USERNAME --ftp-password=PASSWORD url

可以使用wget完成FTP链接的下载。

使用wget进行匿名FTP下载:

wget ftp-url

使用wget进行用户名和密码认证的FTP下载:

wget --ftp-user=USERNAME --ftp-password=PASSWORD url