wget基本使用
目录
前言
准备工作
基本语法
基本用法示例
下载单个文件:
指定保存文件名:
将文件保存到指定目录:
常用选项
高级用法示例
断点续传:
递归下载整个网站并限制深度:
下载指定类型的文件:
限制下载速度:
下载需要认证的资源:
伪造 User-Agent:
后台下载:
递归下载整个网站
使用验证
使用代理
使用 wgetrc 配置文件
总结:
前言
什么是 wget
?
wget
是一个自由、非交互式的命令行工具,用于从网络上下载文件。它支持 HTTP、HTTPS 和 FTP 协议,并且非常适合在脚本中使用或者在没有图形界面的服务器上进行文件下载。
准备工作
基本语法
wget [options] [URL]
options: 用于控制 wget 行为的选项(例如,保存文件名、下载速度限制等)。
URL: 你要下载的文件或资源的网址。
基本用法示例
下载单个文件:
wget https://example.com/image.jpg
这会下载 https://example.com/image.jpg 文件并将其保存到当前目录下,文件名为 image.jpg。
指定保存文件名:
wget -O myimage.jpg https://example.com/image.jpg
使用 -O 选项可以指定下载后保存的文件名,这里会保存为 myimage.jpg。
将文件保存到指定目录:
wget -P /path/to/directory https://example.com/document.pdf
使用 -P 选项指定保存目录,会将 document.pdf 保存到 /path/to/directory 目录中。
常用选项
-O filename
(或--output-document=filename
):指定下载文件的保存名称。
-P directory
(或--directory-prefix=directory
):指定下载文件的保存目录。
-c
(或--continue
):断点续传。如果下载中断,可以继续上次下载未完成的部分。
-q
(或--quiet
):安静模式,不显示下载进度信息。
-v
(或--verbose
):详细模式,显示更多的下载信息。
-N
(或--timestamping
):仅当服务器上的文件比本地文件新时才下载。
-r
(或--recursive
):递归下载。这通常用于下载整个网站或目录。
-l depth
(或--level=depth
):递归下载的深度,与
-r
一起使用。-np
(或--no-parent
):递归下载时,不进入父目录。
-A acclist
(或--accept acclist
):只下载指定类型的文件,例如
-A jpg,png
。-R rejlist
(或--reject rejlist
):拒绝下载指定类型的文件,例如
-R gif,svg
。-U agent
(或--user-agent=agent
):指定 User-Agent,例如
-U Mozilla
。-w seconds
(或--wait=seconds
):每次下载后等待指定的秒数。
-limit-rate rate
:限制下载速度,例如
--limit-rate=200k
(200KB/秒)。--no-check-certificate
: 禁用 SSL 证书检查 (慎用,仅在必要时使用,存在安全风险)。
高级用法示例
断点续传:
wget -c https://example.com/bigfile.zip
如果下载 bigfile.zip
时中断,可以再次使用该命令从中断的地方继续下载。
递归下载整个网站并限制深度:
wget -r -l 2 -np https://example.com
这会递归下载 https://example.com
站点,深度为 2,并且不进入父目录。
下载指定类型的文件:
wget -r -l 2 -A pdf,doc https://example.com/documents
这会递归下载 https://example.com/documents
目录及其子目录中所有的 PDF 和 DOC 文件。
限制下载速度:
wget --limit-rate=500k https://example.com/largefile.iso
这将限制下载速度为 500KB/秒
下载需要认证的资源:
如果资源需要用户名和密码,可以使用 --http-user=user
和 --http-password=pass
选项:
wget --http-user=myuser --http-password=mypass https://example.com/secret.zip
或者,如果使用 wgetrc
文件,可以在其中设置授权信息。
伪造 User-Agent
:
wget -U "Mozilla/5.0 (X11; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0" https://example.com/
某些网站会检查 User-Agent
,这时你可以伪造一个常见的浏览器 User-Agent
来绕过检测。
后台下载:
wget -b http://example.com/file.zip
递归下载整个网站
wget -r -l2 -P /save/directory http://example.com/-r: 递归下载 -l2: 最大递归深度为2层 -P: 指定保存目录
使用验证
wget --user=username --password=password http://example.com/private/file
使用代理
wget -e use_proxy=yes -e http_proxy=http://proxy.example.com:8080 http://example.com/file
使用 wgetrc
配置文件
wget
可以读取 /etc/wgetrc
(全局配置)和 ~/.wgetrc
(用户配置)两个配置文件。你可以在这些文件中设置常用的选项,以便每次运行 wget
时不必重复输入。
例如,你可以在 ~/.wgetrc
中添加:
continue = ontimestamping = onuser-agent = "Mozilla/5.0 (X11; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0"
这样,每次你运行 wget
,都会自动启用断点续传、时间戳功能,并使用指定的 User-Agent
。
总结:
整理一些常用的方法,只有wget配置文件这一项不常使用,它的使用方法就是提前配置好直接使用,把一些方法组合在一起使用。