如何在 Linux 中使用 curl 检索网页内容

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本教程将指导你在 Linux 环境中使用 cURL(客户端 URL)工具检索网页内容的过程。cURL 是一个多功能的命令行工具,它允许你使用各种协议(包括 HTTP、FTP 和 SFTP)传输数据。通过本教程的学习,你将深入了解如何利用 cURL 获取网页内容、处理高级技术,并将其集成到基于 Linux 的项目中。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/RemoteAccessandNetworkingGroup -.-> linux/nc("Networking Utility") linux/RemoteAccessandNetworkingGroup -.-> linux/ifconfig("Network Configuring") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ping("Network Testing") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") linux/PackagesandSoftwaresGroup -.-> linux/curl("URL Data Transferring") linux/PackagesandSoftwaresGroup -.-> linux/wget("Non-interactive Downloading") subgraph Lab Skills linux/nc -.-> lab-417913{{"如何在 Linux 中使用 curl 检索网页内容"}} linux/ifconfig -.-> lab-417913{{"如何在 Linux 中使用 curl 检索网页内容"}} linux/netstat -.-> lab-417913{{"如何在 Linux 中使用 curl 检索网页内容"}} linux/ping -.-> lab-417913{{"如何在 Linux 中使用 curl 检索网页内容"}} linux/ip -.-> lab-417913{{"如何在 Linux 中使用 curl 检索网页内容"}} linux/curl -.-> lab-417913{{"如何在 Linux 中使用 curl 检索网页内容"}} linux/wget -.-> lab-417913{{"如何在 Linux 中使用 curl 检索网页内容"}} end

了解 cURL

cURL(客户端 URL)是一个强大的命令行工具,用于使用各种协议(包括 HTTP、FTP、SFTP 等)传输数据。它是一个多功能工具,可用于广泛的任务,如下载文件、上传数据、测试 Web 服务以及自动化各种与 Web 相关的任务。

什么是 cURL?

cURL 是一个由开发者社区开发和维护的免费开源软件项目。它适用于多种操作系统,包括 Linux、macOS 和 Windows。cURL 旨在成为通过互联网传输数据的可靠且高效的方式,并且已成为开发者、系统管理员和安全专业人员中流行的工具。

为什么使用 cURL?

cURL 具有多项优势,使其成为与 Web 相关任务的热门选择:

  1. 多功能性:cURL 支持广泛的协议,包括 HTTP、HTTPS、FTP、FTPS、SFTP、TFTP 等。这使其成为处理各种基于 Web 的任务的多功能工具。
  2. 自动化:cURL 可以轻松集成到脚本和自动化工作流程中,使你能够自动化重复任务并简化与 Web 相关的流程。
  3. 调试:cURL 提供有关请求和响应的详细信息,这有助于调试和排查与 Web 相关的问题。
  4. 性能:cURL 设计高效且快速,使其适用于涉及大数据传输或频繁 Web 请求的任务。
  5. 跨平台兼容性:cURL 可用于多个操作系统,包括 Linux、macOS 和 Windows,使其成为可在各种环境中使用的跨平台工具。

开始使用 cURL

要使用 cURL,你需要在系统上安装它。在 Ubuntu 22.04 上,你可以使用以下命令安装 cURL:

sudo apt update
sudo apt-get install curl

安装 cURL 后,你就可以开始使用它与 Web 资源进行交互。cURL 命令的基本语法是:

curl [选项] [URL]

[选项] 参数允许你自定义 cURL 的行为,例如指定请求方法、标头或要发送的数据。[URL] 参数是你要与之交互的 Web 资源。

使用 cURL 检索网页内容

cURL 最常见的用例之一是检索网页内容。cURL 提供了一种简单而高效的方法,可使用各种协议从 Web 服务器获取数据。

检索网页

要使用 cURL 检索网页的内容,你可以使用以下命令:

curl https://www.example.com

这将获取 https://www.example.com 网站的 HTML 内容并输出到控制台。你还可以使用 -o-O 选项将输出保存到文件:

## 将输出保存到名为 "example.html" 的文件中
curl -o example.html https://www.example.com

## 使用与 URL 相同的名称保存输出
curl -O https://www.example.com

处理 HTTP 标头

cURL 允许你使用 -I--head 选项查看 Web 请求的 HTTP 标头:

curl -I https://www.example.com

这将显示 HTTP 标头,例如响应代码、内容类型和其他元数据。

发送 HTTP 请求

cURL 还可用于发送带有自定义方法、标头和数据的 HTTP 请求。例如,要发送带有 JSON 有效负载的 POST 请求:

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"key":"value"}' \
  https://api.example.com/endpoint

此命令向 https://api.example.com/endpoint 发送一个带有 JSON 有效负载的 POST 请求,并将 Content-Type 标头设置为 application/json

处理重定向

cURL 可以使用 -L--location 选项自动跟随重定向:

curl -L https://bit.ly/example-url

这将跟随任何重定向并获取最终目标 URL。

通过掌握这些基本的 cURL 命令,你将能够在 Linux 环境中高效地检索网页内容并自动化各种与 Web 相关的任务。

cURL 高级技术

虽然基本的 cURL 命令涵盖了许多常见用例,但 cURL 还提供了广泛的高级功能和技术,可帮助你处理更复杂的与 Web 相关的任务。

处理认证

cURL 支持多种认证方法,包括基本认证(Basic Authentication)、摘要认证(Digest Authentication)和 OAuth。你可以使用适当的选项指定认证类型和凭证:

## 基本认证
curl -u 用户名:密码 https://api.example.com

## 摘要认证
curl --digest -u 用户名:密码 https://api.example.com

## OAuth 2.0 认证
curl -H "Authorization: Bearer 访问令牌" https://api.example.com

使用 cURL 进行脚本编写

cURL 可以轻松集成到 shell 脚本中,以自动化与 Web 相关的任务。例如,你可以使用 cURL 从 API 获取数据,然后以编程方式处理响应:

#!/bin/bash

## 从 API 获取数据
response=$(curl https://api.example.com/data)

## 解析响应并提取相关信息
data=$(echo $response | jq '.data')
echo "检索到的数据: $data"

处理 Cookies

cURL 可以在 Web 请求期间管理 Cookies,这对于维护会话状态或与需要基于 Cookie 认证的网站进行交互很有用。你可以分别使用 -c-b 选项来保存和加载 Cookies:

## 将 Cookies 保存到文件
curl -c cookies.txt https://www.example.com

## 从文件加载 Cookies
curl -b cookies.txt https://www.example.com

监控进度

cURL 提供了监控传输进度的选项,这对于长时间运行的下载或上传很有帮助。你可以使用 -#--progress-bar 选项来显示进度条,或者使用 -s--silent 选项来抑制进度输出。

## 显示进度条
curl --progress-bar https://example.com/large-file.zip -o file.zip

## 抑制进度输出
curl -s https://example.com/data.json

通过探索这些 cURL 高级技术,你可以充分发挥这个强大工具的潜力,并简化你在 Linux 环境中与 Web 相关的工作流程。

总结

在本全面教程中,你已经学习了如何在 Linux 环境中使用 cURL 工具检索网页内容。你探索了 cURL 的基本概念,掌握了获取网页数据的基本技术,并深入研究了 cURL 的高级功能以处理复杂场景。有了这些知识,你现在可以将 cURL 无缝集成到基于 Linux 的应用程序中,并自动化网页内容检索任务,为数据驱动的项目开启新的可能性。