在谷歌表单中用ImportXML刮烂番茄评分



每年我和我的朋友们都会做一个游泳池,在那里我们可以猜测夏天上映的随机混合电影的烂番茄评论百分比。我们有一个电子表格,可以随时跟踪每个人的猜测并计算分数。电子表格会从烂番茄中抓取这个百分比。由于新冠肺炎,我们去年没有演出,但我正在更新今年夏天电影的电子表格,我在收集数据时遇到了问题。

我在本例中使用的电影的URL:https://www.rottentomatoes.com/m/wrath_of_man

以下是我在2019年使用的ImportXML:

=index(ImportXML("https://www.rottentomatoes.com/m/wrath_of_man", "//span[@class='mop-ratings-wrap__percentage']"),1,1)*100

我正在挖掘烂番茄的来源,情况发生了一些变化,但我不太清楚如何获得我想要的#。我玩过一堆捕捉不同跨度和div的游戏,但我一定错过了什么。

我不确定这是否是合适的位置,但%出现在这两个部分:

<div class="score-icon-critic right">
<span class="icon fresh big"></span>
<span class="percentage big" data-qa="tomatometer">70%</span>
</div>
<div class="score-icon-critic left">
<span class="icon fresh medium"></span>
<span class="percentage medium" data-qa="tomatometer">70%</span>
</div>

任何帮助都将不胜感激!谢谢

网页现在由javascript构建。IMPORTXML函数不再提供这些数据。不过,您可以在源代码中的json中找到它们。要获得分数,请使用此脚本获取json并对其进行解析:

function rottentomatoes() {
var url='https://www.rottentomatoes.com/m/wrath_of_man'
var source = UrlFetchApp.fetch(url).getContentText()
var jsonString = source.match(/(?<=<script id="score-details-json" type="application/json">).*(?=</script>)/g)
var data = JSON.parse(jsonString)
var score = data.scoreboard.tomatometerScore
Logger.log(score)
}

最新更新