如何使用wget批量下载网站1-100页面及参数建议
解决wget下载连续页面的404问题及参数推荐
错误原因分析
你之前的命令出现404,主要有几个核心问题:
- 域名错误:目标站点是
example.com,但你命令里写了google.com,google.com/1本身就是不存在的页面,必然返回404。 - 参数搭配不当:
--mirror是用于递归镜像整个站点的参数,直接配合{1..100}会触发不必要的递归逻辑;如果shell未正确解析括号,wget会把{1..100}当作URL的一部分发起请求,导致无效地址。 - 括号扩展失效:若你的默认shell不是bash(比如用sh),
{1..100}不会自动展开为1到100的序列,请求地址自然错误。
正确下载方法
方法1:利用bash括号扩展直接生成URL列表
如果默认shell是bash,直接执行以下命令即可批量下载指定页面:
wget -k -p --convert-links https://example.com/{1..100}
bash会自动将{1..100}展开为https://example.com/1、https://example.com/2……https://example.com/100,wget会逐个处理这些有效URL。
方法2:通过URL列表文件批量下载
如果括号扩展不生效(比如用非bash环境),可以通过列表文件实现:
- 创建
urls.txt,每行写入一个目标URL:
https://example.com/1 https://example.com/2 ... https://example.com/100
- 执行wget命令读取列表:
wget -k -p --convert-links -i urls.txt
推荐参数详解
-k/--convert-links:下载完成后自动将页面中的在线链接转换为本地相对链接,确保离线浏览时点击链接能直接打开本地保存的页面,无需访问在线站点。-p(--page-requisites):下载页面所需的所有附属资源(图片、CSS、JS、字体等),让离线页面的显示效果和在线完全一致。- 可选附加参数:
-P ./save_dir:指定统一保存目录,比如-P ./example_archive,避免下载文件杂乱存放。-t 5:设置失败重试次数,提升不稳定网络下的下载成功率。--no-parent:如果页面包含上级目录的链接,该参数可防止wget递归下载不必要的上级内容。
内容的提问来源于stack exchange,提问作者Denied Access
相关产品推荐
相关产品推荐

