0

0

如何下载比特币历史价格数据(分步指南)

心靈之曲

心靈之曲

发布时间:2025-09-27 10:56:01

|

718人浏览过

|

来源于php中文网

原创

目录
  • 如何以 excel 或 csv 格式下载比特币历史数据?
    • 如何从 coingecko 网站下载比特币历史数据
  • 如何使用 coingecko api 下载比特币历史数据?
    • google 表格或 excel 中下载比特币历史数据(无需代码)
    • google 表格
    • microsoft excel:
    • 使用 python 下载比特币历史数据 
    • api 端点和 url
    • 步骤 1:先决条件
    • 第 2 步:管理您的 api 密钥
    • 步骤 3:设置密钥检索和 api 调用
    • 步骤 4:测试 api 连接
    • 步骤5:获取比特币历史价格数据
    • 步骤 6:处理数据并将其下载到 excel
  • 如何下载其他加密货币的历史数据
    • 未来发展
      • 结论

        比特币拥有悠久而丰富的交易历史,使其成为全球分析最多的资产之一。历史价格数据不仅仅是图表上的数字,更是回测策略、洞察市场周期、理解投资者行为,甚至驱动应用程序或研究工具的基础。可靠的数据有助于交易者验证决策,研究人员检验理论,开发者构建用户信赖的功能。

        在本指南中,我们将介绍使用 CoinGecko 资源下载比特币历史价格数据的两种实用方法:

        • 直接从 CoinGecko 上的比特币页面导出(无需代码)。
        • 使用CoinGecko API在电子表格或代码中实现自动访问。

        最后,您将能够检索比特币的过去价格,无论您是需要快速的 CSV 文件进行分析还是需要为您的项目提供自动数据馈送。

        如何下载比特币历史价格数据(分步指南)

        如何以 Excel 或 CSV 格式下载比特币历史数据?

        下载比特币历史数据的最快方法是直接从 CoinGecko比特币历史数据页面下载。此方法非常适合需要 CSV 或 Excel 电子表格格式的数据进行快速一次性分析的用户,因为无需注册或登录账户。

        如果您需要更细粒度的数据,CoinGecko API 提供了/coins/{id}/market_chart和/coins/{id}/ohlc等端点,用于获取历史价格和 OHLC 数据。

        如何从 CoinGecko 网站下载比特币历史数据

        按照这些简单的步骤,只需单击几下即可下载数据。

        步骤 1:导航到 CoinGecko 上的比特币硬币页面,然后单击“历史数据”选项卡。

        第 2 步:从可用选项中选择所需的时间范围(例如,过去 7 天、30 天、1 年或自定义日期)。

        步骤 3:在数据表的右上角,单击下载图标,然后选择将数据下载为CSVXLS文件,如下所示:

        如何下载比特币历史价格数据(分步指南)

        下载后,该文件可在任何电子表格软件(例如 Excel 或 Google Sheets)中打开。数据已预先格式化,并带有清晰的列标题(日期、市值、交易量、价格),方便您创建图表、运行计算或导入其他工具。

        以下是 Microsoft Excel 中导出数据的示例:

        如何下载比特币历史价格数据(分步指南)

        如何使用 CoinGecko API 下载比特币历史数据?

        对于可重复的工作流程、精确的时间窗口或可按需刷新的数据,CoinGecko API是理想的解决方案。它允许您将比特币的历史价格直接提取到电子表格或项目中,用于分析、仪表板或回测交易策略。

        使用 API 的主要方式有两种:

        • 无代码:将数据直接导入 Google 表格或 Excel。
        • 使用代码:使用 Python、JavaScript、PHP 等语言以编程方式获取数据。

        两种方法都需要 CoinGecko API 密钥。如果您没有,请按照本指南获取免费的演示 API 密钥。在本指南中,比特币的 API 币种 ID 很简单bitcoin

        在 Google 表格或 Excel 中下载比特币历史数据(无需代码)

        如果您更喜欢无代码方法,可以使用 CoinGecko API 将比特币的历史价格数据直接提取到 Google 表格或 Excel 中。这样,您无需任何编程即可分析、绘制图表和共享数据。

        Google 表格

        您可以使用免费的 API 连接器扩展来提取数据。

        安装 API 连接器:从 Google Workspace Marketplace 添加“Mixed Analytics 的 API 连接器”扩展。

        创建新请求:在扩展中,创建一个新请求并输入历史数据的 CoinGecko API 请求 URL:

        演示 API:

        https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=30&interval=daily&precision=full?x_cg_demo_api_key=YOUR_API_KEY

        专业 API:

        https://pro-api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=30&interval=daily&precision=full?x_cg_pro_api_key=YOUR_API_KEY

        运行请求:执行请求将数据拉入当前工作表并以所需的格式下载数据。

        要获得带有屏幕截图的详细演练,请阅读有关如何 将加密货币价格导入 Google 表格的完整指南。

        Microsoft Excel:

        Excel 内置的 Power Query 工具可以直接从 API 获取数据。

        打开 Power Query:在 Excel 中,转到“数据”选项卡并选择“来自 Web”。

        输入API URL:在对话框中输入API请求URL:

        演示 API:

        https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=30&interval=daily&precision=full?x_cg_demo_api_key=YOUR_API_KEY

        专业 API:

        https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=30&interval=daily&precision=full?x_cg_demo_api_key=YOUR_API_KEY

        转换和加载: Power Query 编辑器将打开,允许您将 JSON 响应转换为表格,然后将其加载到工作表中以供下载和导出。

        要获得带有屏幕截图的详细演练,请阅读有关如何 将加密货币价格导入 Excel 的完整指南。

        使用 Python 下载比特币历史数据 

        对于更高级或自动化的用例,您可以通过编程方式获取数据。CoinGecko API 兼容任何支持 HTTP 请求的语言,但本指南使用 Python,因为它在数据分析领域非常流行。

        API 端点和 URL

        Demo 和 Pro API 的基本 URL 为:

        • 演示 API: https://api.coingecko.com/api/v3
        • 专业 API: https://pro-api.coingecko.com/api/v3

        对于历史价格数据,我们将使用/coins/{id}/market_chart端点。此端点返回指定天数的价格、市值和 24 小时交易量。

        在本节中,我们将介绍如何使用 Python 获取比特币的历史价格数据。

        步骤 1:先决条件

        1、安装 Python

        从 python.org 下载。

        建议使用3.7或以上版本。

        通过在终端或命令提示符上运行以下命令来确认安装:

        python --version 

        2、创建虚拟环境

        这样可以使依赖项保持清晰且特定于项目。首先,在终端或命令提示符中运行以下命令来创建环境:

        python -m venv coingecko_env

        接下来,使用适合您的操作系统的命令激活它:

        • Windows: coingecko_env\Scripts\activate
        • macOS/Linux: source coingecko_env/bin/activate

        3、安装所需的软件包

        在您的环境中,安装以下软件包:

        • 请求:允许您的程序进行 API 调用(通过网络发送和接收数据)。
        • Pandas:一个强大的库,用于处理和组织表格数据。我们将用它来整理 API 输出。
        • Openpxyl:一个允许 Pandas 写入 Excel 工作簿的库。
        • Pathlib:一个方便的标准库工具,用于检查文件是否已经存在。

        pip install requests pandas openpxyl pathlib 

        4、检查软件包是否正确安装

        您可以通过运行以下命令来确认软件包是否已安装:

        pip show requests pandas

        第 2 步:管理您的 API 密钥

        为了保证您的 API 密钥安全并且与您的代码分开,请将其存储在外部 JSON 文件中。

        创建一个名为 api_keys.json 的文件并添加您的密钥,如下所示:

        {
          "x-cg-demo-api-key": "YOUR_DEMO_API_KEY",
          "x-cg-pro-api-key": "YOUR_PRO_API_KEY"
        }

        步骤 3:设置密钥检索和 API 调用

        安装先决条件并将 API 密钥安全地存储在适当的位置后,下一步是设置辅助函数 以确保:

        • 您的 API 密钥正在 正确加载。
        • 该程序可以成功与 CoinGecko API 通信。

        首先,我们将设置辅助函数来加载 API 密钥并向 CoinGecko API 发出请求。get_Response ()函数将处理 API 调用,并将端点、标头和参数作为参数。这种模块化方法使代码保持简洁且可重用。

        import json
        from pathlib import Path
        import requests as rq
        import pandas as pd
        import openpyxl  # required by pandas' ExcelWriter (engine="openpyxl")
        PUB_DEMO_URL = "https://api.coingecko.com/api/v3"
        PUB_PRO_URL  = "https://pro-api.coingecko.com/api/v3"
        def get_demo_key():
            # CHANGE the path if your file is elsewhere
            with open(r"YOUR_KEYS_FILE_PATH", "r", encoding="utf-8") as f:
                key_dict = json.load(f)
            return key_dict.get("x-cg-demo-api-key")
        def get_pro_key():
            with open(r"YOUR_KEYS_FILE_PATH", "r", encoding="utf-8") as f:
                key_dict = json.load(f)
            return key_dict.get("x-cg-pro-api-key")
        def get_response(endpoint, headers=None, params=None, base_url=None):
            if not base_url:
                raise ValueError("base_url is required (use PUB_DEMO_URL or PUB_PRO_URL).")
            url = f"{base_url}{endpoint}"
            resp = rq.get(url, headers=headers, params=params, timeout=30)
            resp.raise_for_status()
            return resp.json()

        专业提示:可在任何 API 请求中 重复使用get_Response()辅助函数。只需为每次调用提供特定的端点 (endpoint)、带有 Demo 或 Pro 键的标头 (headers )、 paramsbase_url作为参数即可。

        步骤 4:测试 API 连接

        在获取完整数据集之前,最好先测试一下你的设置。/ping端点是确认 API 密钥正常工作的简单方法。以下脚本会加载你的密钥,ping API,然后进行一次小型测试调用,以获取比特币的前两个数据点。

        # 0) Load key and show last 4 chars so we know it loaded
        key = get_Demo_key()
        print("Loaded demo key (last 4):", (key or "")[-4:])
        headers = {"accept": "application/json", "x-cg-demo-api-key": key}
        base_url = PUB_DEMO_URL
        # 1) Ping to Authenticate
        ping = get_Response("/ping", headers=headers, base_url=base_url)
        print("PING:", ping)
        # 2) A small real call
        params = {"vs_currency": "usd", "days": "7", "interval": "daily"}
        mc = get_Response("/coins/bitcoin/market_chart", headers=headers, params=params, base_url=base_url)
        print("First 2 prices:", mc.get("prices", [])[:2])

        如果一切正常,您应该会看到如下所示的响应:

        如何下载比特币历史价格数据(分步指南)

        步骤5:获取比特币历史价格数据

        现在,让我们使用/coins/{id}/market_chart端点来获取过去 7 天的历史数据。

        其作用:

        • 通过 get_Response()调用按 ID 端点的硬币历史图表数据
        • 将 JSON 响应存储在 mc 中。
        • 确保定义key、headers、endpoint和params。
        key = get_Demo_key()
        headers = {"accept": "application/json", "x-cg-demo-api-key": key}
        base_url = PUB_DEMO_URL
        params = {"vs_currency": "usd", "days": "7", "interval": "daily"} #parameters to query upon, BTC daily data for the past 7 days
        mc = get_Response("/coins/bitcoin/market_chart", headers=headers, params=params, base_url=base_url )

        步骤 6:处理数据并将其下载到 Excel

        API 响应会以单独的列表形式返回价格、市值和交易量。以下代码会处理这些原始 JSON 数据,将其组合成干净的 Pandas DataFrame,并将其保存到 Excel 工作簿中的工作表中。如果该文件已存在,它将替换该工作表,以便轻松重新运行脚本。

        #Shape the data
        def series_to_df(series, value_col):
            df = pd.DataFrame(series, columns=["ts_ms", value_col])
            df["date"] = pd.to_datetime(df["ts_ms"], unit="ms")
            return df[["date", value_col]]
        df_price  = series_to_df(mc.get("prices", []),        "price_usd")
        df_mcap   = series_to_df(mc.get("market_caps", []),   "market_cap_usd")
        df_volume = series_to_df(mc.get("total_volumes", []), "volume_24h_usd")
        df = (
            df_price.merge(df_mcap, on="date", how="left")
                    .merge(df_volume, on="date", how="left")
                    .sort_values("date")
                    .reset_index(drop=True)
        )[["date", "price_usd", "market_cap_usd", "volume_24h_usd"]]
        # 3) Append to an existing workbook as a NEW sheet (or create if missing)
        from pathlib import Path
        out_path   = "crypto_market_data.xlsx"          # your master workbook
        sheet_name = "btc_7d_usd"                       # name the sheet for clarity
        if Path(out_path).exists():
            # Append; if the sheet already exists, REPLACE it (safer for reruns)
            with pd.ExcelWriter(out_path, engine="openpyxl", mode="a", if_sheet_exists="replace") as xw:
                df.to_excel(xw, index=False, sheet_name=sheet_name)
        else:
            # Create the workbook and write the first sheet
            with pd.ExcelWriter(out_path, engine="openpyxl") as xw:
                df.to_excel(xw, index=False, sheet_name=sheet_name)
        print(f"Saved sheet '{sheet_name}' in {out_path}")def series_to_df(series, value_col):
                df = pd.DataFrame(series, columns=["ts_ms", value_col])
                df["date"] = pd.to_datetime(df["ts_ms"], unit="ms")
                return df[["date", value_col]]
            df_price  = series_to_df(mc.get("prices", []),        "price_usd")
            df_mcap   = series_to_df(mc.get("market_caps", []),   "market_cap_usd")
            df_volume = series_to_df(mc.get("total_volumes", []), "volume_24h_usd")
            df = (
                df_price.merge(df_mcap, on="date", how="left")
                        .merge(df_volume, on="date", how="left")
                        .sort_values("date")
                        .reset_index(drop=True)
            )[["date", "price_usd", "market_cap_usd", "volume_24h_usd"]]
            out_path   = "crypto_market_data.xlsx"  # your master workbook
            sheet_name = "btc_7d_usd"               # rename as you like
            mode = "a" if Path(out_path).exists() else "w"
            with pd.ExcelWriter(out_path, engine="openpyxl", mode=mode, if_sheet_exists="replace") as xw:
                df.to_excel(xw, index=False, sheet_name=sheet_name)
            print(f"Saved sheet '{sheet_name}' in {out_path}")

        示例输出:

        如何下载比特币历史价格数据(分步指南)

        您可以通过更改以下变量来自定义输出:

        • value_col:重命名列(例如,“price_in_usd”)。
        • sheet_name:设置 Excel 工作表的显示方式(例如“btc_30d_eur”)。
        • out_path:选择用于保存 Excel 工作簿的文件名或文件夹。

        专业提示:在开发过程中,运行脚本时最好保持 Excel 文件关闭,以避免写入错误。

        如何下载其他加密货币的历史数据

        虽然本指南以比特币为例,但同样的方法也适用于 CoinGecko 上数千种其他加密货币。要获取其他加密货币的数据,只需在 API 调用中替换货币 ID(例如,将“比特币”更改为“以太坊”或“solana”)。

        您可以在CoinGecko 网站的任何单个硬币页面上找到 API ID  。

        如何下载比特币历史价格数据(分步指南)

        专业提示:币种 ID 区分大小写,多个币种可能使用相似的代码。为避免错误,请务必直接从 CoinGecko 网站或我们的 API 文档获取并使用正确的 ID 。

        未来发展

        通过访问历史数据,您可以构建各种强大的工具。对于想要进一步探索的读者,以下是一些相关指南:

        • 回测策略:使用历史数据通过我们的加密回测指南测试交易策略的性能。
        • 纸质交易机器人:通过构建加密纸质交易机器人在无风险环境中模拟交易。
        • 价格预测模型:应用机器学习技术来预测未来价格,并遵循我们关于构建比特币价格预测模型的指南。

        结论

        在本指南中,我们演示了两种从 CoinGecko 下载比特币历史数据的有效方法。从网站直接导出非常适合快速手动将数据提取到 CSV 或 Excel 文件中;而 CoinGecko API 则为使用 Google Sheets、Excel 或 Python 等工具的开发者和分析师提供了强大的编程解决方案。按照概述的步骤,您可以访问丰富的历史数据,以支持您的分析、回测策略以及构建 DeFi 应用程序。

        虽然本文中使用的端点可以通过免费的 Demo API 密钥访问,但它仅提供最多 365 天的历史数据。如果您需要访问自 2013 年以来更精细的数据,并享受更高的速率限制以及专属端点的访问权限,请考虑订阅套餐。

        热门AI工具

        更多
        DeepSeek
        DeepSeek

        幻方量化公司旗下的开源大模型平台

        豆包大模型
        豆包大模型

        字节跳动自主研发的一系列大型语言模型

        通义千问
        通义千问

        阿里巴巴推出的全能AI助手

        腾讯元宝
        腾讯元宝

        腾讯混元平台推出的AI助手

        文心一言
        文心一言

        文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

        讯飞写作
        讯飞写作

        基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

        即梦AI
        即梦AI

        一站式AI创作平台,免费AI图片和视频生成。

        ChatGPT
        ChatGPT

        最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

        相关专题

        更多
        json数据格式
        json数据格式

        JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

        455

        2023.08.07

        json是什么
        json是什么

        JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

        546

        2023.08.23

        jquery怎么操作json
        jquery怎么操作json

        操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

        334

        2023.10.13

        go语言处理json数据方法
        go语言处理json数据方法

        本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

        82

        2025.09.10

        Python 时间序列分析与预测
        Python 时间序列分析与预测

        本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

        79

        2025.12.04

        Python 数据清洗与预处理实战
        Python 数据清洗与预处理实战

        本专题系统讲解 Python 在数据清洗与预处理中的核心技术,包括使用 Pandas 进行缺失值处理、异常值检测、数据格式化、特征工程与数据转换,结合 NumPy 高效处理大规模数据。通过实战案例,帮助学习者掌握 如何处理混乱、不完整数据,为后续数据分析与机器学习模型训练打下坚实基础。

        32

        2026.01.31

        pip安装使用方法
        pip安装使用方法

        安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

        373

        2023.10.09

        更新pip版本
        更新pip版本

        更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

        436

        2024.12.20

        C# ASP.NET Core微服务架构与API网关实践
        C# ASP.NET Core微服务架构与API网关实践

        本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

        76

        2026.03.11

        热门下载

        更多
        网站特效
        /
        网站源码
        /
        网站素材
        /
        前端模板

        精品课程

        更多
        相关推荐
        /
        热门推荐
        /
        最新课程
        PHP课程
        PHP课程

        共137课时 | 13.3万人学习

        JavaScript ES5基础线上课程教学
        JavaScript ES5基础线上课程教学

        共6课时 | 11.3万人学习

        PHP新手语法线上课程教学
        PHP新手语法线上课程教学

        共13课时 | 1.0万人学习

        关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
        php中文网:公益在线php培训,帮助PHP学习者快速成长!
        关注服务号 技术交流群
        PHP中文网订阅号
        每天精选资源文章推送

        Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号