You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取币安P2P页面首个价格并导入Google Sheets

失效原因

你写的两个IMPORTXML公式无法拿到数据是必然的:

  • 币安P2P交易页是JavaScript客户端渲染页面,Google Sheets内置的IMPORTXML/IMPORTHTML类函数只能抓取服务器初始返回的静态HTML源码,根本获取不到JS执行后才动态加载的交易列表数据
  • 你用来定位的css-1ee59nr类名是前端构建时生成的随机哈希值,每次币安更新前端版本就会变化,完全不具备定位稳定性
  • 手写的绝对XPath完全依赖固定DOM层级,只要页面新增模块、调整布局就会直接失效
稳定实现方案

不要爬页面DOM,直接调用币安P2P的公开数据接口,通过Google Apps Script写自定义函数取数,全程不需要第三方服务,稳定性极高:

  1. 打开目标Google Sheets表格,点击顶部菜单栏「扩展程序」→「Apps Script」进入脚本编辑页
  2. 清空编辑器里的默认示例代码,粘贴以下代码:
function GET_BINANCE_P2P_USDT_UZS_PRICE() {
  const endpoint = "https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search";
  const requestBody = {
    page: 1,
    rows: 1,
    payTypes: [],
    asset: "USDT",
    fiat: "UZS",
    // 取值BUY对应用户买入USDT板块(页面默认展示)的商家报价,要取用户卖出USDT板块报价改为SELL即可
    tradeType: "BUY",
    publisherType: null
  };
  const options = {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify(requestBody),
    muteHttpExceptions: true
  };
  try {
    const response = UrlFetchApp.fetch(endpoint, options);
    const result = JSON.parse(response.getContentText());
    if (result.code === "000000" && result.data.length) {
      return Number(result.data[0].adv.price);
    }
    return "接口返回异常";
  } catch (err) {
    return `请求失败:${err.message}`;
  }
}
  1. 点击编辑器顶部的保存按钮,给项目任意命名后完成保存,第一次运行时按提示完成Google账号授权(这是你个人账号下的私有脚本,所有数据只会存在你自己的表格和脚本里,不会上传到第三方)
  2. 回到表格页面,在需要展示价格的单元格输入公式=GET_BINANCE_P2P_USDT_UZS_PRICE(),回车即可拿到最新的首个挂牌价格

可选优化

如果需要价格自动刷新,不需要手动重新运行公式:在Apps Script编辑器左侧边栏找到「触发器」选项,新增时间驱动触发器,绑定刚才写的函数,设置你需要的刷新间隔(最短支持1分钟刷新一次)即可。

这个方案完全不依赖页面DOM结构,不会因为币安前端改版、类名变化、布局调整失效,比爬页面的方案维护成本低90%以上。

内容的提问来源于stack exchange,提问作者Роберт Гумеров

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 00:18:22