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

如何获取osu用户页面全球排名的XPath用于Google Sheets ImportXML?

解决osu用户页面全球排名抓取问题

问题原因

直接复制浏览器检查元素的XPath在Google Sheets ImportXML 中失效,核心原因是osu用户页面的排名数据是JavaScript动态渲染的——服务器返回的初始HTML里并没有排名元素,而ImportXML只能解析静态HTML,自然找不到对应内容,返回空值。

可行解决方案

利用页面中内置的静态JSON数据(服务器直接返回,无需JS加载)提取排名,步骤如下:

  1. 抓取页面内置的用户数据JSON
    使用ImportXML获取页面中存储用户所有信息的script标签内容:

    =IMPORTXML("https://osu.ppy.sh/users/13992437", "//script[@id='json-user']/text()")
    
  2. 提取并格式化全球排名
    用REGEXEXTRACT从JSON字符串中匹配global_rank对应的数值,再用TEXT格式化带逗号的显示效果:

    =TEXT(REGEXEXTRACT(IMPORTXML("https://osu.ppy.sh/users/13992437", "//script[@id='json-user']/text()"), """global_rank"":(\d+)"), "#,###")
    

    执行后会返回目标数值185,917。

更稳定的替代方案

如果担心页面结构变动导致抓取失效,可以使用osu官方API获取用户数据。需要注册开发者账号并获取密钥,请求格式示例:

GET /api/v2/users/{user_id}?mode=osu

返回的JSON中直接包含statistics.global_rank字段,可直接提取数值。

内容的提问来源于stack exchange,提问作者NorthRL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 15:14:59