暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux 工具-wget

李明双的身边 2021-08-11
526

我的技术杂谈 欢迎关注 一起学习~


本篇文章是自己使用 wget 时的学习笔记,建议使用 PC 打开浏览。GUN Wget
也是一个免费的开源项目,用于从 web
上下载文件。

wget
使用

通过软件管理包安装非常简单,可参考:参考1-《How to Install Wget in Linux》

## Ubuntu/Debian
apt-get install wget

## RHEL/CentOS/Fedora
yum install wget

## OpenSUSE
zypper install wget

## ArchLinux
pacman -Sy wget

复制

安装完毕之后,可以使用 wget --version
wget -V
验证工具是否安装成功!

可以做什么?

  • 通过HTTP
    HTTPS
    FTP
    FTPS
    协议递归下载文件
  • 支持自动断点续传文件【-c
    参数,旧版本可能存在问题,详情见:参考2-Linux 环境下使用 wget 命令下载 Blob 文件断点续传问题】
  • 支持通配符批量下载文件
  • 支持将下载的文档中的绝对链接转换为相对链接,以便下载的文档可以在本地彼此链接(--convert-links)
  • 支持:HTTP 代理、COOKIE设置、HTTP 持久化连接

常用参数

更多参数,查看GNU Wget Manual
,详细使用用法自行谷歌!

下载参数

参数作用
-b, –-background启动后转入后台执行【可以通过 tail -f wget.log
查看下载进度】
–progress=TYPE设置进程标记【通过 -b
后台作业进行下载时】
-e, –-execute=COMMAND启动下载进程之前执行命令【如:设置临时环境变量...】
-c, –-continue接着下载没下载完的文件【即:断点续传】
-S, –-server-response打印服务器的回应
-nc, –-no-clobber不要覆盖存在的文件或使用.#前缀【若本地已有同名文件,拒绝下载-在多次重复下载同一个站点时或者存在站点多个网页引用同一个资源时常用】
-N, –-timestamping不要重新下载文件除非比本地文件新【只是单纯的对比下载时间,并不会理会本地文件是否下载完整】
-t, –-tries=NUMBER设定最大尝试链接次数(0
表示无限制).【当由于网络的原因下载失败,wget
会不断的尝试,直到整个文件下载完毕,可以设置最大尝试连接次数】
-T, –-timeout=SECONDS设定响应超时的秒数
-w, –-wait=SECONDS指定两次重试之间间隔秒数
–waitretry=SECONDS在重新链接之间等待的秒数
–random-wait在下载之间等待 0-2 秒
-Y, –-proxy=on/off打开或关闭代理【更推荐:https://www.cnblogs.com/frankyou/p/6693256.html 文中方法3】
-Q, –-quota=NUMBER设置下载的容量限制【注意:这个参数对单个文件下载不起作用,只能递归下载时才有效。如:-Q=5m
-–limit-rate=RATE限定下载速率【即:限制下载带宽,如:--limit-rate=50k
–-bind-address=ADDRESS指定本地使用地址(主机名或IP
,当本地有多个IP
或名字时使用)
–-spider不下载任何东西【当需要调试打印 HTTP
响应信息时会使用该参数跳过下载步骤】

下载路径设置

选项/参数作用
-O FILE, –-output-document=FILE把文档写到文件中【即:自定义下载路径】
-nd, –-no-directories不创建目录(缺省参数)
-x, –-force-directories强制创建目录【如:下载 www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4
会层层创建目录】
-nH, –-no-host-directories不创建主机目录【当 -x
参数存在时才可用】
-P, –-directory-prefix=PREFIX将文件保存到目录 PREFIX/…

输入/记录日志输出

选项/参数作用
-i, –-input-file=FILE下载指定文件中出现的URLs
-F, –-force-html把输入文件当作HTML
格式文件对待
-B, –-base=URLURL
作为在-F -i
参数指定的文件中出现的相对链接的前缀
-d, –-debug打印调试输出
-q, –-quiet安静模式(没有输出,下载完成直接退出)
-v, –-verbose冗长模式(这是缺省设置)
-nv, –-non-verbose关掉冗长模式,但不是安静模式【相比安静模式,该模式下若下载完成会输出下载完成信息】
-o, –-output-file=FILE把记录写到文件中
-a, –-append-output=FILE把记录追加到文件中

HTTP 选项参数

选项/参数作用
–-no-cache允许/不允许服务器端的数据缓存 (一般情况下允许)
-–no-http-keep-alive关闭 HTTP
活动链接 (持久链接)
-–http-user=USER设定HTTP
用户名
-–http-passwd=PASS设定HTTP
密码
-–proxy-user=USER设定代理的用户名
-–proxy-passwd=PASS设定代理的密码
-U, –-user-agent=AGENT设定代理的名称为AGENT
(默认为:Wget/VERSION
-–header=STRINGheaders
中插入字符串 STRING
–-load-cookies=FILE在开始会话前从文件中加载cookie
-–save-cookies=FILE在会话结束后将 cookies
保存到文件中
-–referer=URLHTTP
请求中包含 Referer: URL

FTP 选项参数

wget -v --ftp-user=demo --ftp-password=password "ftp://test.rebex.net/readme.txt"

复制

递归下载

选项/参数作用
-r, -–recursive递归下载--慎用!
-l, -–level=NUMBER最大递归深度 (inf
0
代表无穷)
-k, –-convert-links转换非相对链接为相对链接
-K, –-backup-converted在转换文件X
之前,将之备份为X.orig
-m, –-mirror等价于 -r -N -l inf -nr
【对网站做镜像下载】
-L, –-relative仅仅跟踪相对链接
-np, –-no-parent不要追溯到父目录
-A, –-accept=LIST分号分隔的被接受扩展名的列表
-E, --adjust-extension以合适的扩展名保存 HTML/CSS 文档
-H, --span-hosts递归下载时,允许递归检索第三方外链域名【慎用!!!】
-R, –-reject=LIST分号分隔的不被接受的扩展名的列表
-D, –-domains=LIST分号分隔的被接受域的列表
–-exclude-domains=LIST分号分隔的不被接受的域的列表
–-follow-ftp跟踪HTML文档中的FTP
链接
–-follow-tags=LIST分号分隔的被跟踪的HTML
标签的列表
-I, –-include-directories=LIST允许目录的列表
-X, –-exclude-directories=LIST不被包含目录的列表

案例:wget
下载网站下的图片

图片命名有规则

对于命名有规则的图片,下载非常简单:使用通配符(*-任意长度的任意字符、?-任意一个字符、[]-括号中的任意一个字符、{..}-表示一个序列)下载即可

wget -b http://aliimg.changba.com/cache/photo/{260929610-260939610}_640_640.jpg

复制

图片命名无规则

一共 22 页,图片全部在 CDN:img1.446677.xyz
上,图片命名是非规则的!

  • 遍历当前页面的 img.446677.xyz
    域名,下载资源
  • 遍历 22 分页:https://www.kanxiaojiejie.com/page/{1..22}
wget -b -c -r -H -D "img1.446677.xyz" -R "www.kanxiaojiejie.com" -nc https://www.kanxiaojiejie.com/page/{1..22}

复制

  • 参考1:https://www.tecmint.com/install-wget-in-linux/
  • 参考2:https://docs.azure.cn/zh-cn/articles/azure-operations-guide/storage/aog-storage-blob-wget-download-offset)
  • 通配符:http://www.ruanyifeng.com/blog/2018/09/bash-wildcards.html


文章转载自李明双的身边,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论