所以我试图使用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,这告诉我数据已经在页面上的某个地方了。这给了你两个选择:
-
请求API密钥并使用
get_user
API。更多信息在这里和他们的维基。他们说他们的API将很快进入v2,所以如果你想要一个长期的解决方案,请注意这一点。 -
从静态HTML文件中抓取正确的数据,因为这是数据所在的位置。我假设你在玩家的等级之后,所以我们可以分两个阶段进行:
-
这会抓取您在评论中给出的URL。我在id为
json-user
的脚本标记中找到了排名数据,所以我使用了。=IMPORTXML("https://osu.ppy.sh/users/4504101","//script[@id='json-user']")
-
然后使用
REGEXEXTRACT()
查找所需的数据。我们感兴趣的字符串部分是:"rank":{"global":1,"country":1}}
,所以我做了=REGEXEXTRACT(A1,"""rank"":{""global"":(d+),""country"":(d+)")
(d+)
周围的parens为数字创建捕获组。这产生了两个单元格:第一个单元格用于全局,第二个单元格用于国家排名。如果你只是对国家排名感兴趣,你可以去掉第一个d+
的括号。
-