wget命令是干嘛的,怎么用

wget命令是一个用于从网络上下载文件的命令行工具。它支持通过HTTP、HTTPS和FTP协议进行文件下载,并且可以递归下载整个网站。

以下是wget命令的基本用法和常用选项:

基本用法

sh 复制代码
wget [选项] [URL]

常用选项

  • -O [文件名]:将下载的文件保存为指定的文件名。
  • -c:断点续传,继续下载上次未完成的文件。
  • -r:递归下载。
  • -p:下载页面内所有资源(例如图片、CSS等),使得页面可以离线查看。
  • -k:将下载的HTML文件内的链接转换为本地链接。
  • -l [级别]:递归下载的级别。
  • --limit-rate=[速度]:限制下载速度。例如--limit-rate=200k表示限制下载速度为200KB/s。
  • -b:后台下载模式。
  • --user=[用户名] --password=[密码]:用于需要身份验证的站点。

示例

  1. 下载单个文件
sh 复制代码
wget http://example.com/file.zip
  1. 将文件保存为指定名称
sh 复制代码
wget -O myfile.zip http://example.com/file.zip
  1. 断点续传
sh 复制代码
wget -c http://example.com/file.zip
  1. 递归下载整个网站
sh 复制代码
wget -r http://example.com
  1. 下载页面及其资源
sh 复制代码
wget -p http://example.com
  1. 将下载的HTML文件内的链接转换为本地链接
sh 复制代码
wget -k -r http://example.com
  1. 后台下载并限制下载速度
sh 复制代码
wget -b --limit-rate=100k http://example.com/file.zip
  1. 下载需要身份验证的资源
sh 复制代码
wget --user=myusername --password=mypassword http://example.com/protected-file.zip

通过这些选项,wget可以非常灵活地用于各种下载任务。

wget 是一个命令行工具,通常在终端或命令行界面中运行,而不是在 Python 脚本中直接运行。不过,你可以在 Python 脚本中使用 subprocess 模块来调用 wget 命令。以下是如何在 Python 脚本中使用 wget 的示例:

使用 subprocess 调用 wget

python 复制代码
import subprocess

# 下载单个文件
url = "http://example.com/file.zip"
subprocess.run(["wget", url])

# 将文件保存为指定名称
output_filename = "myfile.zip"
subprocess.run(["wget", "-O", output_filename, url])

# 断点续传
subprocess.run(["wget", "-c", url])

# 递归下载整个网站
website_url = "http://example.com"
subprocess.run(["wget", "-r", website_url])

使用 requests 模块替代 wget

如果不想依赖外部工具,你也可以使用 Python 的 requests 模块来下载文件。以下是使用 requests 模块下载文件的示例:

python 复制代码
import requests

url = "http://example.com/file.zip"
output_filename = "file.zip"

response = requests.get(url, stream=True)
with open(output_filename, 'wb') as file:
    for chunk in response.iter_content(chunk_size=8192):
        if chunk:
            file.write(chunk)

安装 requests 模块

如果你还没有安装 requests 模块,可以使用 pip 来安装:

sh 复制代码
pip install requests

总结

尽管 wget 是一个强大的下载工具,但在 Python 脚本中通常使用 subprocess 模块来调用它。如果不想依赖外部工具,可以使用 requests 模块来实现类似的功能。两种方法各有优劣,可以根据具体需求选择合适的方式。

相关推荐
蹦蹦跳跳真可爱5894 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
nananaij4 小时前
【Python进阶篇 面向对象程序设计(3) 继承】
开发语言·python·神经网络·pycharm
雷羿 LexChien4 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt
敲键盘的小夜猫5 小时前
LLM复杂记忆存储-多会话隔离案例实战
人工智能·python·langchain
高压锅_12205 小时前
Django Channels WebSocket实时通信实战:从聊天功能到消息推送
python·websocket·django
胖达不服输7 小时前
「日拱一码」020 机器学习——数据处理
人工智能·python·机器学习·数据处理
吴佳浩7 小时前
Python入门指南-番外-LLM-Fingerprint(大语言模型指纹):从技术视角看AI开源生态的边界与挑战
python·llm·mcp
吴佳浩7 小时前
Python入门指南-AI模型相似性检测方法:技术原理与实现
人工智能·python·llm
叶 落7 小时前
计算阶梯电费
python·python 基础·python 入门
Python大数据分析@8 小时前
Origin、MATLAB、Python 用于科研作图,哪个最好?
开发语言·python·matlab