cURL 是用于通过互联网传输数据的最常用命令行工具之一。它支持多种协议,包括 HTTP 和 HTTPS,可用于网页抓取、测试 API 和调试网络连接。无论您需要从公共网站获取数据还是与 API 交互,cURL 都是您的最佳选择。
这篇文章将指导您如何使用 cURL 发送 GET 请求。我们将通过传递参数、标头和 JSON 响应等常见场景的示例,将其分解为简单的步骤。
目录
- 什么是 GET 请求?
- 使用 cURL 发送简单的 GET 请求
- 带参数的 GET 请求
- 使用 GET 请求检索 HTTP 标头
- 使用 cURL 获取 JSON 数据
- 处理 cURL GET 请求中的重定向
- 使用 GET 请求发送 Cookies
- cURL GET 请求选项概述
- 总结
- 常见问题
什么是 GET 请求?
GET 请求是从服务器检索数据的最简单、最常用的 HTTP 方法。当您在浏览器中输入 URL 并按回车键时,浏览器会向托管网站的服务器发送 GET 请求。服务器通过发回请求的数据(如 HTML 内容、图像或 JSON 数据)进行响应,然后您的浏览器会显示这些数据。
与 POST 等将数据发送到服务器的其他 HTTP 方法不同,GET 请求仅用于获取资源。这使得 GET 请求非常适合:
- 检索网页。
- 访问 API 端点以获取数据。
- 获取静态资源,如图像或样式表。
以下是使用 cURL 的 GET 请求的简单示例:
1 | curl https://crawlbase.com |
此命令检索指定网页的 HTML 并将其显示在您的终端中。
使用 cURL 发送简单的 GET 请求
使用 cURL 的 GET 请求是从服务器获取数据的最简单方法。cURL 默认为 GET,因此您不需要指定它。
以下是发出基本 GET 请求的方法:
1 | curl http://httpbin.org/get |
这将请求来自 https://example.com
。服务器将响应资源(通常是 HTML 或其他数据),这些数据将显示在您的终端上。
要将输出保存到文件而不是打印到终端,请使用 -o
选项:
1 | curl -o 输出.html https://example.com |
关键点:
- 使用
curl
后面跟着 URL 来进行基本的 GET 请求。 - 添加
-o
标志将响应保存到文件。
这是您从网站或 API 获取数据的起点。现在我们将了解如何发送带参数的 GET 请求。
带参数的 GET 请求
有时您需要在 GET 请求中传递参数,以便向服务器提供更多数据。传递参数的方法有两种:
使用 -G
和 -d
附加选项
-G 选项允许您使用 GET 请求发送数据,-d 选项指定参数。以下是示例:
1 | 卷曲-G-d “参数1=值1” -d “参数2=值2” http://httpbin.org/get |
在这种情况下, param1=value1
和 param2=value2
是作为查询字符串发送到服务器的参数。
将参数附加到 URL
您还可以将参数直接附加到 URL。操作方法如下:
1 | 卷曲 'http://httpbin.org/get?param1=value1¶m2=value2' |
在这种情况下参数 param1
和 param2
添加到 URL 之后 ?
并由 &
.
两种方法都会处理参数并返回数据。选择权在你,但两种方法都会给出相同的结果。
使用 GET 请求检索 HTTP 标头
当您使用 cURL 执行 GET 时,您还可以获取 HTTP 标头以及响应主体。HTTP 标头对于了解响应、服务器类型、内容类型等非常有用。
要在响应中包含 HTTP 标头,请使用 -i
or --include
选项:
1 | curl -i http://httpbin.org/headers |
此命令将返回响应主体和 HTTP 标头。或者,如果您只想要标头而不想要主体,请使用 --head
选项:
1 | 卷曲——头 http://httpbin.org/headers |
当您只需要有关请求的元数据而不是实际内容时,这很有用。
使用 cURL 获取 JSON 数据
要使用 cURL 从服务器获取 JSON 数据,您可以告诉 cURL 您希望以 JSON 格式获取响应。这在处理以 JSON 格式返回数据的 API 时非常方便。
要请求 JSON 数据,请使用 -H
选项来设置 Accept
标题到 application/json
:
1 | 卷曲-H “接受:应用程序/json” http://httpbin.org/get |
这告诉服务器您期望 JSON 格式的响应。如果服务器支持,您将收到 JSON 格式的响应,您可以使用它进行进一步处理。
处理 cURL GET 请求中的重定向
使用 cURL 发出 GET 请求时,服务器可能会返回重定向到另一个 URL。cURL 默认不遵循重定向。要遵循重定向,请使用 -L
or --location option
.
以下是如何使用它:
1 | curl -L http://httpbin.org/redirect-to?url=http://httpbin.org/get |
这将遵循重定向并从新 URL 获取内容。在使用发送重定向(301 或 302 状态代码)的网站或 API 时很有用。
使用 GET 请求发送 Cookies
某些网站要求您通过 GET 请求发送 Cookie,以保留会话或跟踪用户活动。您可以使用 -b
or --cookie
cURL 中的选项。
以下是使用 GET 请求发送 cookie 的方法:
1 | curl -b “用户名=JohnDoe;sessionId=12345” http://httpbin.org/cookies |
在此示例中,cookie username
和 sessionId
与 GET 请求一起发送。您还可以从文件中提供 cookie:
1 | curl -b cookies.txt http://httpbin.org/cookies |
这使您可以与需要用户会话、登录或其他基于 cookie 的数据的网站进行交互。
cURL GET 请求选项概述
以下是可以与 GET 请求一起使用的一些关键 cURL 选项:
下表总结了允许您自定义 GET 请求以满足您的需求的关键 cURL 选项。
总结
cURL 是一款出色的工具,可用于发送 GET 请求并从 Web 服务器获取数据。您可以获取 Web 内容、处理参数、管理 Cookie、遵循重定向以及使用 API。无论您是抓取数据还是自动执行任务,cURL 都能让一切变得轻松灵活。
一旦掌握了 cURL GET 请求和选项,您就可以与网络资源进行交互并获取所需的数据。通过练习,您将能够使用 cURL 进行所有网络抓取和自动化项目,它是您工具箱中的必备工具。
常见问题
问:什么是 cURL GET 请求?
cURL GET 请求用于从服务器获取数据。它向指定的 URL 发送 HTTP 请求并获取服务器的响应,该响应可以是网页、JSON 数据或任何其他资源。这用于网页抓取、API 交互和测试网页资源。
问:如何在 cURL 中使用 GET 请求发送参数?
您可以在 GET 请求中发送参数,方法是将其附加到 URL 或使用 -G
和 -d
选项。
- URL 中包含参数的示例:
curl 'http://example.com/data?param1=value1¶m2=value2'
- 例子
-G
和-d
:curl -G -d "param1=value1" -d "param2=value2" http://example.com/data
问:我可以使用 cURL 检索 JSON 数据吗?
是的,你可以通过设置 Accept: application/json
您的 cURL 请求中的标头。
示例:curl -H "Accept: application/json" http://example.com/data
如果支持的话,这会告诉服务器以 JSON 格式返回数据。