每年,我和我的朋友们都会做一个游泳池,在那里我们会猜测夏季上映的随机组合的电影的腐烂番茄评论百分比。我们有一个电子表格,可以跟踪每个人的猜测,并动态计算分数。电子表格抓取腐烂西红柿的百分比。由于去年我们没有播放COVID,但我正在为今年夏天的电影更新电子表格,我在抓取数据时遇到了问题。
我在本例中使用的电影的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>任何帮助都将不胜感激!谢谢。
发布于 2021-05-06 03:28:27
该网页现在由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)
}https://stackoverflow.com/questions/67405658
复制相似问题