.\wget.exe -c -t 0 -r -l inf -p --restrict-file-names=windows -A.html https://www.baidu.com
.\wget.exe -c -t 0 -r -l inf --page-requisites --restrict-file-names=nocontrol https://www.baidu.com
该命令使用wget
工具从指定网站下载网页,具体解释如下:
.\wget.exe
:表示在当前目录下执行wget
可执行程序。在Windows系统中,.
代表当前目录,这条命令指明了要运行的工具是当前目录下的wget.exe
。-c
: 表示断点续传。如果下载过程中断,使用该参数可以从上次中断的地方继续下载,而不是重新开始,避免重复下载已完成的部分,节省时间和带宽。-t 0
:设置重试次数为0 ,意味着遇到错误时不进行重试。一般情况下,下载过程中可能因为网络波动等原因出现错误,-t
参数用于指定遇到错误时的重试次数,0
表示不重试。-r
:启用递归下载。它会递归地下载指定网页及其链接的所有页面,从而获取整个网站的内容结构,包括页面中的各种链接所指向的页面。-l inf
:设置递归深度为无穷。-l
用于指定递归下载的层数,inf
是“infinite”的缩写,表示无穷,这样可以确保下载整个网站,而不受特定层数的限制。-p
:下载所有为了使所下载页面正常显示而需要的元素,比如图片、CSS样式表、JavaScript脚本等。这些元素对于完整显示网页内容和样式至关重要,该参数能保证下载的网页在本地可以正常浏览。--restrict-file-names=nocontrol
:限制文件名,避免文件名中出现控制字符。在下载文件时,网站的某些文件名可能包含操作系统不允许的控制字符,使用该参数可以确保文件名合规,防止因文件名问题导致下载失败或文件无法正常保存。-A.html
:指定只下载扩展名为.html
的文件。这可以筛选出符合特定扩展名的文件进行下载,避免下载其他不需要的文件类型,比如.jpg
、.pdf
等,提高下载的针对性和效率。https://linji.cn
:指定要下载的目标网站地址。它明确了从哪个网站获取网页内容,是整个下载任务的目标指向。
这条命令的目的是从https://linji.cn
网站递归下载所有.html
文件,包括相关的页面元素,支持断点续传,不进行重试,并且规范文件名以确保下载顺利进行 。
wget
有很多其他实用的参数,下面为你详细介绍一些常见参数:
网络相关参数
-P <目录>
- 作用:指定下载文件保存的目录。如果该目录不存在,
wget
会尝试创建它。 - 示例:
.\wget.exe -P D:\downloads https://example.com/file.zip
,会将file.zip
下载到D:\downloads
目录下。
- 作用:指定下载文件保存的目录。如果该目录不存在,
--proxy=代理地址
- 作用:使用指定的代理服务器进行下载。当你处于需要通过代理访问外网的网络环境时,该参数很有用。
- 示例:
.\wget.exe --proxy=http://proxy.example.com:8080 https://example.com
,通过http://proxy.example.com:8080
代理服务器下载https://example.com
的内容。
--timeout=秒数
- 作用:设置网络连接和读取数据的超时时间。如果在指定时间内没有响应,
wget
会放弃当前操作。 - 示例:
.\wget.exe --timeout=10 https://example.com
,如果连接或读取数据超过 10 秒无响应,就会中断操作。
- 作用:设置网络连接和读取数据的超时时间。如果在指定时间内没有响应,
下载行为相关参数
-q
- 作用:安静模式,不输出下载过程中的详细信息,只在下载完成或出现错误时给出提示。
- 示例:
.\wget.exe -q https://example.com/file.txt
,执行时不会显示下载进度等信息。
-nv
- 作用:非详细模式,输出比正常模式更少的信息,但比安静模式多一些基本信息。
- 示例:
.\wget.exe -nv https://example.com
,会显示一些必要的下载信息,但不会像正常模式那样详细。
-nc
- 作用:不覆盖已存在的文件。如果本地已经有同名文件,
wget
不会再次下载该文件。 - 示例:
.\wget.exe -nc https://example.com/file.pdf
,若本地已有file.pdf
,则不会重新下载。
- 作用:不覆盖已存在的文件。如果本地已经有同名文件,
-N
- 作用:只下载比本地文件更新的文件。
wget
会比较服务器上文件和本地文件的修改时间,只有当服务器上的文件更新时才会下载。 - 示例:
.\wget.exe -N https://example.com/file.js
,会检查服务器上file.js
的修改时间,若比本地新则下载。
- 作用:只下载比本地文件更新的文件。
过滤和范围相关参数
-R <后缀列表>
- 作用:排除指定后缀的文件,不进行下载。与
-A
相反,用于过滤不需要的文件类型。 - 示例:
.\wget.exe -R .jpg,.png https://example.com
,不会下载.jpg
和.png
格式的文件。
- 作用:排除指定后缀的文件,不进行下载。与
--domains <域名列表>
- 作用:限制递归下载的域名范围。只下载指定域名下的文件,避免下载到其他域名的链接。
- 示例:
.\wget.exe -r --domains=example.com https://example.com
,只下载example.com
域名下的文件。
认证相关参数
--user=用户名 --password=密码
- 作用:用于需要认证的网站,提供用户名和密码进行身份验证。
- 示例:
.\wget.exe --user=myuser --password=mypassword https://example.com/protected/file.zip
,使用myuser
用户名和mypassword
密码访问受保护的文件。
如何使用wget下载整个网站?
使用wget
下载整个网站可以通过合理组合其参数来实现,下面为你详细介绍操作步骤及相关参数示例:
基本命令示例
以下是一个能下载整个网站的常用wget
命令示例:
wget -r -l inf -p -k -E --restrict-file-names=windows --domains=example.com https://example.com
参数解释
-r
:- 含义:开启递归下载模式。这意味着
wget
会从指定的起始页面开始,自动下载该页面中所有链接指向的页面,逐层深入,从而获取整个网站的内容。 - 示例影响:如果起始页面有指向其他页面的链接,
wget
会继续下载这些链接页面,以此类推。
- 含义:开启递归下载模式。这意味着
-l inf
:- 含义:设置递归的深度为无穷大(
inf
是“infinite”的缩写)。保证wget
会尽可能深入地下载网站的所有层级页面,不会因为预设的层数限制而停止。 - 示例影响:无论网站结构有多深,
wget
都会尝试下载所有层级的页面。
- 含义:设置递归的深度为无穷大(
-p
:- 含义:下载所有为了使所下载页面正常显示而需要的元素,如图片、CSS样式表、JavaScript脚本等资源。这些元素对于完整呈现网页的样式和功能至关重要。
- 示例影响:下载的页面在本地打开时,能够正确显示样式和执行脚本,就像在浏览器中访问一样。
-k
:- 含义:将下载的页面中的链接转换为适合本地浏览的形式。当页面下载到本地后,原本指向网站内其他页面或资源的链接会被修改为指向本地相应文件的路径,方便在本地离线浏览整个网站。
- 示例影响:在本地打开下载的页面时,点击页面中的链接可以正常跳转到本地对应的页面。
-E
:- 含义:在下载的文件扩展名后面添加合适的后缀,通常是根据文件的实际类型添加,如
.html
、.css
等。这样可以确保文件的扩展名与内容类型一致,便于识别和使用。 - 示例影响:如果下载的是一个HTML页面,文件名将以
.html
结尾,方便后续查看和处理。
- 含义:在下载的文件扩展名后面添加合适的后缀,通常是根据文件的实际类型添加,如
--restrict-file-names=windows
:- 含义:限制文件名的字符,确保生成的文件名符合Windows操作系统的命名规则。避免因文件名包含Windows不允许的字符(如
/
、\
、:
等)而导致下载失败或文件无法正常保存。 - 示例影响:在Windows系统上下载时,能保证所有文件都可以正常命名和保存。
- 含义:限制文件名的字符,确保生成的文件名符合Windows操作系统的命名规则。避免因文件名包含Windows不允许的字符(如
--domains=example.com
:- 含义:限制递归下载的范围,只下载指定域名(这里是
example.com
)下的页面和资源。防止wget
下载到外部链接指向的其他网站的内容,确保只获取目标网站的信息。 - 示例影响:如果页面中包含指向其他域名的链接,
wget
不会对其进行下载。
- 含义:限制递归下载的范围,只下载指定域名(这里是
注意事项
- 网站规则:在下载整个网站之前,务必查看该网站的
robots.txt
文件,了解网站允许和禁止抓取的内容范围,遵守网站的使用条款和相关法律法规,避免因违规下载而带来法律风险。 - 网络和服务器负载:下载整个网站可能会消耗大量的网络带宽和服务器资源,对目标网站的服务器造成较大压力。因此,建议在非高峰时段进行下载,并尽量控制下载频率,避免给网站运营带来不必要的影响。