里面的文字<div>不会显示在使用导入XML的谷歌表格中



所以我试图使用Xpath将网站中的信息导入谷歌电子表格,但我在<div>方面有点困难。

<div class="value-display__value">
<div title="" data-html-title="">
#295
</div>
</div>

这个想法是导入'#295',这是我的代码。

IMPORTXML($C2,"//div[@class='value-display__value']//div/text()")

谷歌表单似乎导入了空内容,而不是295

看起来排名数字是在运行时填充的,所以不能只使用ImportXML()。页面在加载后也不生成XHR,这告诉我数据已经在页面上的某个地方了。这给了你两个选择:

  1. 请求API密钥并使用get_userAPI。更多信息在这里和他们的维基。他们说他们的API将很快进入v2,所以如果你想要一个长期的解决方案,请注意这一点。

  2. 从静态HTML文件中抓取正确的数据,因为这是数据所在的位置。我假设你在玩家的等级之后,所以我们可以分两个阶段进行:

    1. 这会抓取您在评论中给出的URL。我在id为json-user的脚本标记中找到了排名数据,所以我使用了。

      =IMPORTXML("https://osu.ppy.sh/users/4504101","//script[@id='json-user']")
      
    2. 然后使用REGEXEXTRACT()查找所需的数据。我们感兴趣的字符串部分是:"rank":{"global":1,"country":1}},所以我做了

      =REGEXEXTRACT(A1,"""rank"":{""global"":(d+),""country"":(d+)")
      

      (d+)周围的parens为数字创建捕获组。这产生了两个单元格:第一个单元格用于全局,第二个单元格用于国家排名。如果你只是对国家排名感兴趣,你可以去掉第一个d+的括号。

最新更新