linux - 使用wget下载网站

GNU Wget 是一个免费的实用程序,用于从 Web 非交互式下载文件。它支持 HTTP、HTTPS 和 FTP 协议,以及通过 HTTP 代理进行检索。
wget的特点:

  • 支持递归下载
  • 恰当地转换页面中的连接
  • 生成可在本地浏览的页面镜像
  • 支持代理服务器

1. 基本使用

  • 下载某个url
    wget http://fly.srk.fer.hr/

  • 设置下载失败尝试次数
    wget -t 45 http://fly.srk.fer.hr/jpg/flyweb.jpg

  • 将下载过程记录到日志,并使其在后台运行
    wget -o log http://fly.srk.fer.hr/jpg/flyweb.jpg &

  • 从ftp下载文件
    下载文件:wget ftp://gnjilux.srk.fer.hr/welcome.msg
    列出目录内容: wget ftp://ftp.gnu.org/pub/gnu/

2. 高级用法

  • 从文件中读取url并下载
    wget -i file

  • 创建一个5层深度镜像的gnu网站, 将创建过程保存在日志中
    wget -r https://www.gnu.org/ -o gnulog

  • 创建网站镜像并且将下载文件中的链接保存为本地文件,方便离线浏览网站
    wget --convert-links -r https://www.gnu.org/ -o gnulog

  • 单独下载某一个网页,并使其相关的资源也下载到本地
    wget -p --convert-links http://www.example.com/dir/page.html

  • 单独下载一个网页,并将其下载到指定的目录,而不使用远程地址的目录
    wget -p --convert-links -nH -nd -P download http://www.example.com/dir/page.html

  • 获取网站的首页,并显示服务器相应头
    wget -S http://www.lycos.com/

  • 获取网站首页相应头并且保存到文件
    wget --save-headers http://www.lycos.com/

  • 获取前两层网站内容,并保存到 /tmp 目录
    wget -r -l2 -P/tmp ftp://wuarchive.wustl.edu/

  • 下载某一个目录下的所有gif 文件
    wget -r -l1 --no-parent -A.gif http://www.example.com/dir/

  • 下载中断后,重新下载不破坏已下载文件
    wget -nc -r https://www.gnu.org/

  • 将下载的文件,输出到标准输出而非保存到文件
    wget -O - http://www.example.com/dir/page.html

  • 从下载的标准输出中读入url信息并将下载文件视为html文档,并继续下载其中的url地址
    wget -O - http://cool.list.com/ | wget --force-html -i -

3. 更高级用法

  • 镜像一个网站,将其可以加入cron计划中定时进行更新下载
    wget --mirror https://www.gnu.org/ -o /home/me/weeklog

  • 镜像网站时,对有时间戳无法正常转换的原始html文件进行备份保存
    wget --mirror --convert-links --backup-converted https://www.gnu.org/ -o /home/me/weeklog

  • 将下载的非html文件,进行重命名为html文件

wget --mirror --convert-links --backup-converted \
     --html-extension -o /home/me/weeklog https://www.gnu.org/
简写形式:     
wget -m -k -K -E https://www.gnu.org/ -o /home/me/weeklog

参考:https://www.gnu.org/software/wget/manual/html_node/Simple-Usage.html#Simple-Usage

posted @ 2023-11-05 22:32  箫笛  阅读(671)  评论(0编辑  收藏  举报