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=[密码]
:用于需要身份验证的站点。
示例
- 下载单个文件:
sh
wget http://example.com/file.zip
- 将文件保存为指定名称:
sh
wget -O myfile.zip http://example.com/file.zip
- 断点续传:
sh
wget -c http://example.com/file.zip
- 递归下载整个网站:
sh
wget -r http://example.com
- 下载页面及其资源:
sh
wget -p http://example.com
- 将下载的HTML文件内的链接转换为本地链接:
sh
wget -k -r http://example.com
- 后台下载并限制下载速度:
sh
wget -b --limit-rate=100k http://example.com/file.zip
- 下载需要身份验证的资源:
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
模块来实现类似的功能。两种方法各有优劣,可以根据具体需求选择合适的方式。