如果您参与加密货币交易、构建仪表盘或进行市场研究,获取实时加密货币价格至关重要。虽然 CoinMarketCap 在其网站上提供了大量此类数据,但它并未提供免费开放的实时价格 API。这时,网页数据抓取就变得非常有用。

在本文中,我们将向您展示如何使用 Python 从 CoinMarketCap 获取实时加密货币价格。我们将指导您发送请求、解析 HTML 以及提取比特币、以太坊和其他热门加密货币的数据。您还将学习如何使用以下工具来避免被封禁: Crawlbase Smart Proxy 以及如何导出数据以供将来使用。

让我们开始吧。

目录

  1. 为什么要抓取 CoinMarketCap 来了解加密货币价格?
  2. 入门所需的工具
  • Python 和所需库
  • 安装 BeautifulSoup 和 Requests
  1. 在 CoinMarketCap 上抓取加密货币价格的分步指南
  • 向 CoinMarketCap 发送 HTTP 请求
  • 使用 BeautifulSoup 解析 HTML
  • 提取实时加密货币价格
  1. 避免被阻止:使用 Crawlbase Smart Proxy
  2. 将数据导出为 CSV 或 JSON
  3. 总结
  4. 常见问题 (FAQ)

为什么要抓取 CoinMarketCap 来了解加密货币价格?

CoinMarketCap 是追踪加密货币价格、市值、交易量和排名的热门网站。它实时更新价格,并拥有数千种加密货币。它是加密货币数据的首选来源。

然而,CoinMarketCap 的官方 API 在免费访问方面存在限制,实时数据需要付费套餐才能获取。如果您是开发者、研究人员或加密货币爱好者,希望免费灵活地获取实时价格数据,那么网页抓取是最佳选择。

从 CoinMarketCap 抓取加密货币价格可用于多种用途。下图展示了一些常见的加密货币价格抓取用例及其对应的示例。

加密货币价格数据的常见用例

使用 Python、BeautifulSoup 和智能代理,您可以轻松可靠地提取这些数据,而无需支付昂贵的 API 费用。

入门所需的工具

在从 CoinMarketCap 抓取加密货币价格之前,我们先来设置一下所需的工具和库。我们将使用 Python,因为它简单、强大,并且拥有丰富的网页抓取库。

Python 和所需库

确保已安装 Python。你可以从 python.org 下载。

我们将使用两个主要的 Python 库:

  • 要求 – 发送 HTTP 请求并获取页面的 HTML
  • 美丽汤 – 从 HTML 中解析并提取数据

🔧 安装 BeautifulSoup 和 Requests

你可以使用 Python 的包管理器 pip 安装这两个库。打开终端或命令提示符并运行:

1
pip 安装请求 beautifulsoup4

安装完成后,您就可以开始从 CoinMarketCap 抓取加密数据。

在 CoinMarketCap 上抓取加密货币价格的分步指南

现在你的设置已经准备就绪,让我们从 CoinMarketCap 抓取加密货币的实时价格。我们将使用 Python 和 BeautifulSoup 逐步进行操作。

向 CoinMarketCap 发送 HTTP 请求

首先,我们需要向 CoinMarketCap 网站发送请求并获取页面内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
进口 要求

网址= “https://coinmarketcap.com/”
标头= {
“用户代理”: “Mozilla/5.0”
}

响应 = requests.get(url, headers=headers)

# 检查请求是否成功
if 响应.status_code == 200:
打印(“页面加载成功!”)
其他:
打印(“无法加载页面。”)
Always use headers like User-Agent to mimic a real browser.

使用 BeautifulSoup 解析 HTML

一旦我们有了页面内容,我们就可以使用 BeautifulSoup 来解析它。

1
2
3
 bs4 进口 美丽汤

汤 = BeautifulSoup(response.text, “html.解析器”)

从 CoinMarketCap 中提取实时加密货币价格

让我们提取前 10 种加密货币的名称和当前价格。

CoinMarketCap 使用动态 HTML 类,因此您可能需要检查页面源来调整类名。

这是一个有效的例子:

1
2
3
4
5
6
7
# 查找包含硬币的表行
行=汤.选择(“表格主体 tr”)

HPMC胶囊in 行[:10]: # 排名前 10 的加密货币
名称 = row.select_one(“p.coin-item-name”)。文本
价格=row.select_one(“div.sc-142c02c-0.lmjbLF”)。文本
打印(f"{名称}: {价格}")

输出:

1
2
3
4
5
6
7
8
9
10
比特币: $92,477.64
复仇: $1,744.77
系绳: $1.00
XRP: $2.14
币安: $596.63
索拉纳(Solana): $146.85
美元C: $1.00
多吉币: $0.1732
卡尔达诺: $0.6866
波场: $0.2439

注意:类名可能会经常更改。您可以随时在页面上右键单击 → “检查” 来查看更新后的类名。

避免被阻止:使用 Crawlbase Smart Proxy

CoinMarketCap 使用 Cloudflare 等保护措施来阻止机器人。如果您发送过多请求,您的 IP 可能会被屏蔽。要解决此问题,请使用 Crawlbase Smart Proxy它可以帮助您抓取数据,避免被屏蔽或处理验证码。此外,您无需担心手动轮换 IP,因为一切都已为您处理。

使用方法 Crawlbase Smart Proxy 在 Python 中

这是一个使用 requests:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
进口 要求
进口

# 替换为你的 Crawlbase 象征
令牌 = "_USER_TOKEN_"
代理网址 = f"http://{令牌}:@smartproxy.crawlbase.com:8012”
代理={
“http”:代理网址,
“https”:代理网址
}

# CoinMarketCap 网址
网址= “https://coinmarketcap.com/”

# 可选:请求前等待
时间.睡眠(2)

# 使用发送请求 Smart Proxy
响应= requests.get(url,代理=代理,验证=)

if 响应.status_code == 200:
打印(“请求成功!”)
其他:
打印(“请求失败:”, 响应.status_code)

您可以通过以下方式获取令牌 报名 on Crawlbase。 同 Crawlbase Smart Proxy,即使在具有强大保护的网站上,您的抓取工具也能保持稳定且畅通无阻。

将数据导出为 CSV 或 JSON

在本节中,我们将了解如何将 CoinMarketCap 中的加密货币数据导出为 CSV 和 JSON 格式。这在您需要存储数据或稍后进行分析时非常有用。我们还将使用 Crawlbase Smart Proxy 防止刮擦时被堵塞。

步骤:

  1. 使用 VHDL 语言编写 Crawlbase Smart Proxy 向 CoinMarketCap 发送请求。
  2. 提取加密货币数据,包括名称、符号和价格。
  3. 将数据导出为 CSV 和 JSON 格式。

以下是实现此目的的完整代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
进口 要求
bs4 进口 美丽汤
进口 CSV
进口 JSON

#🛡️ Crawlbase Smart Proxy 格局
代理网址 = “http://_USER_TOKEN_:@smartproxy.crawlbase.com:8012”
代理={“http”:代理网址, “https”: 代理网址}

# 🌐 CoinMarketCap 网址
网址= “https://coinmarketcap.com/”

# 📥 使用以下方式发送 HTTP 请求 Crawlbase Smart Proxy
标头= {
“用户代理”: “Mozilla/5.0”
}
响应 = 请求.get(url,标头 = 标头,代理 = 代理,验证 =)
汤 = BeautifulSoup(response.text, “html.解析器”)

#🧠 提取加密货币数据(前 10 种硬币)
加密数据 = []

# 选择包含加密数据的表行
行=汤.选择('table.cmc-table tbody tr')[:10] # 获取排名前 10 位的硬币数据

# 循环遍历每一行并提取必要的数据
HPMC胶囊in 行:
尝试:
名称 = row.select_one(“p.coin-item-name”).text.strip()
符号= row.select_one('p.coin-item-symbol').text.strip()
价格=row.select_one(“div.sc-142c02c-0.lmjbLF”).text.strip()

加密数据.附加({
“名称”: 姓名,
“符号”: 象征,
“价格美元”: 价格
})
特殊课程 as e:
打印(“由于错误而跳过一行:”,e)

#✅ 将数据导出到 CSV 文件
- open(“crypto_prices.csv”, “w”, 换行="") as csv_文件:
writer = csv.DictWriter(csv_file,fieldnames=[“名称”, “符号”, “价格美元”])
writer.writeheader()
writer.writerows(crypto_data)

#✅ 将数据导出到 JSON 文件
- open(“crypto_prices.json”, “w”) as json_文件:
json.dump(crypto_data,json_file,缩进=2)

打印(“✅ 加密货币价格已保存至‘crypto_prices.csv’和‘crypto_prices.json’”)

这样,您就可以从 CoinMarketCap 抓取数据而不会被封禁,数据导出功能也方便您保存数据并进行后续分析。如果您需要抓取更多数据或实现流程自动化,只需相应地调整逻辑即可。

总结

使用 Python 从 CoinMarketCap 抓取加密货币价格是了解金融市场波动的明智之举。只需几行代码,即可追踪实时价格、导出数据,并将其用于分析或构建加密工具。

不过,请记住,像 CoinMarketCap 这样的网站内置了反机器人保护功能。这就是为什么使用像 Crawlbase Smart Proxy 非常有用。它能让你的数据抓取更顺畅,还能避免 IP 封禁和验证码。

无论您是开发人员、交易员还是数据分析师,本指南都为您提供了一种使用 Python 开始加密数据抓取的简单方法。 现在注册.

常见问题 (FAQ)

从 CoinMarketCap 抓取公共数据通常允许用于个人或教育用途。但是,请务必检查他们的 服务条款 在将抓取的数据用于商业项目之前,要避免任何法律问题。

问:为什么我在抓取 CoinMarketCap 时被阻止了?

CoinMarketCap 使用 Cloudflare 等安全工具来屏蔽机器人程序。如果您从同一 IP 地址发送过多请求,可能会遇到验证码或被屏蔽的情况。为了解决这个问题,请使用 Crawlbase Smart Proxy,, 它会自动轮换 IP 并绕过机器人保护。

问:我多久可以抓取一次加密货币价格?

如果你手动抓取数据,最好每隔几分钟抓取一次数据,以免被阻塞。 Crawlbase Smart Proxy,您可以以更好的速度和频率扩展抓取,使其成为跟踪实时加密数据的理想选择。