这里的主要问题是 Steam 页面中的价格是由 Javascript 生成的,IMPORTXML 无法检索动态生成的数据。似乎您正试图通过导入 <script> 部分来解决这个问题,但这不会执行脚本,您只是在获取一堆代码。
根据this answer,Steam 有一些端点可用于获取市场数据。这些返回带有项目信息的简单 JSON 字符串。端点如下所示:
http://steamcommunity.com/market/priceoverview/?currency=1&appid=[ID]&market_hash_name=[Item name]
appid 是游戏的 ID,market_hash_name 是项目的 URL 编码名称。您可以方便地在您已经使用的 URL https://steamcommunity.com/market/listings/730/Clutch%20Case 中找到它们。游戏ID是730,名字是Clutch%20Case。因此,您可以将它们插入端点以获取此 URL:
http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=Clutch%20Case
端点的 JSON 如下所示:
{
"success":true,
"lowest_price":"$0.30",
"volume":"94,440",
"median_price":"$0.31"
}
由于您只关心中位数价格,我们可以使用带有 REGEXEXTRACT 的公式来仅提取该部分:
这是在 A1 中粘贴 URL 的示例。
=REGEXEXTRACT(JOIN("", IMPORTDATA(A1)), "median_price:""($[0-9]+.[0-9]+)")
编辑:正如我链接的答案中提到的,您可以使用不同的数字测试 URL 中的 currency 参数以获取其他货币。在你的情况下,你可以尝试currency=2for pounds (£)。您还必须编辑 REGEXEXTRACT 以说明此更改:
网址:http://steamcommunity.com/market/priceoverview/?currency=2&appid=730&market_hash_name=Clutch%20Case
公式:=REGEXEXTRACT(JOIN("", IMPORTDATA(A1)), "median_price:""(£[0-9]+.[0-9]+)")