cURL 是用于在互联网上传输数据的最常用命令行工具之一。它支持多种协议,包括 HTTP 和 HTTPS,可用于网页抓取、API 测试和网络连接调试。无论您需要从公共网站获取数据还是与 API 交互,cURL 都是您的理想解决方案。

虽然 cURL 非常适合基本的抓取和测试,但专业的网络抓取项目通常需要更强大的解决方案来处理反机器人措施和大量请求。 Crawlbase“ Crawling API 提供基于 cURL 基本原理的企业级功能,并添加了自动验证码解析和 JavaScript 渲染等功能。在探索这些高级选项之前,让我们先了解一下基础知识。 立即注册即可获得 1,000 个请求.

这篇文章将指导您发送 使用 cURL 进行 GET 请求。我们将通过传递参数、标头和 JSON 响应等常见场景的示例将其分解为简单的步骤。

目录

  1. 什么是 GET 请求?
  2. 使用 cURL 发送简单的 GET 请求
  3. 带参数的 GET 请求
  4. 使用 GET 请求检索 HTTP 标头
  5. 使用 cURL 获取 JSON 数据
  6. 处理 cURL GET 请求中的重定向
  7. 使用 GET 请求发送 Cookies
  8. cURL GET 请求选项概述
  9. 总结
  10. 常見問題解答

什么是 GET 请求?

GET 请求是从服务器获取数据最简单、最常用的 HTTP 方法。当你在浏览器中输入 URL 并按下 Enter 键时,浏览器会发送一个 获取请求 发送到托管网站的服务器。服务器会返回请求的数据(例如 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
2
卷曲—— 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 检索 HTTP 标头以及 JSON 数据,以分析服务器的响应。通过检查响应标头(例如 Content-Length 标头),您可以确定服务器响应的大小和类型。这对于理解服务器返回的内容以及调试或记录传输活动非常有用。

如何处理 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 请求发送 Cookie

某些网站要求您通过 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 选项:

cURL GET 请求选项图片

下表总结了允许您自定义 GET 请求以满足您的需求的关键 cURL 选项。

利用 GET 请求进行 Web 数据收集

cURL 是一款出色的工具,可用于发送 GET 请求并从 Web 服务器获取数据。您可以获取 Web 内容、处理参数、管理 Cookie、遵循重定向以及使用 API。无论您是抓取数据还是自动执行任务,cURL 都能让一切变得轻松灵活。

掌握 cURL GET 请求和选项后,您就可以与网络资源交互并获取所需的数据。然而,随着数据抓取需求的增长,您可能会遇到一些挑战,例如 IP 地址拦截、验证码以及 JavaScript 渲染的内容,而基本的 cURL 无法有效处理这些挑战。

对于这些高级场景, Crawlbase 解决方案提供基于本指南中介绍的 cURL 基础知识的企业级功能。 今天 体验我们的解决方案如何将您的网络抓取项目从简单的脚本提升为可用于生产的系统。

常見問題解答

问:什么是 cURL GET 请求?

cURL GET 请求用于从服务器获取数据。它向指定的 URL 发送 HTTP 请求,并获取服务器的响应,响应可以是网页、JSON 数据或任何其他资源。这可用于网页抓取、API 交互以及测试 Web 资源。

问:如何在 cURL 中使用 GET 请求发送参数?

您可以在 GET 请求中发送参数,方法是将其附加到 URL 或使用 -G 以及 -d 选项​​。

  • URL 中包含参数的示例:
    curl 'http://example.com/data?param1=value1&param2=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 格式返回数据。