json - Parsehub 网站元素仅在特定日期显示
问题描述
我正在使用 Parsehub 将网站上某些页面的某些数据抓取到谷歌电子表格中。
我遇到的问题是某个 html 元素仅在某个日期显示,我想知道是否有办法设置它,以便 Parsehub 检查该元素,并在它最终显示它时将其刮入谷歌表格。
我想要获得的元素是每支球队的 Sportsbet 赔率或 class="match-odd__text match-odd__text--home"
这是两页,一页显示,一页不显示:
- https://www.nrl.com/draw/nrl-premiership/2021/round-13/wests-tigers-v-panthers/
- https://www.nrl.com/draw/nrl-premiership/2021/round-10/wests-tigers-v-knights/
如果有人可以提供帮助,我将不胜感激。
解决方案
要访问赔率和昵称,您必须解析网页中包含的 json。假设 url 在 A1 中,您可以通过以下方式检索信息
=whoAndOdds(importxml(A1,"//div[@id='vue-match-centre']//@q-data"))
使用此自定义功能
function whoAndOdds(url){
var data = JSON.parse(url.replace(/\n/g,''))
return [[data.match.homeTeam.nickName,data.match.homeTeam.odds],[data.match.awayTeam.nickName,data.match.awayTeam.odds]]
}
如果赔率值不存在,则单元格将保持空白,直到激活新的 importxml(您可以添加复选框来进行激活)
推荐阅读
- scala - Scala: Iterate for multiple records of a hive table
- javascript - Is there a way to run a function for a given amount of time in Node?
- dataframe - sqlalchemy orm 在 np.nan 时从 pandas 数据帧批量插入
- php - 将固定/绝对内容添加到底部并根据需要创建新页面
- if-statement - 如果块没有被执行
- javascript - IPFS 静态网站部署
- google-apps-script - fileExtension 配置选项的全局设置
- javascript - 使用带有引用的变量并匹配到数组
- ios - 关闭以前的 VC 后仅重新加载新数据
- netlogo - 如何在 netlogo 上为不同的海龟创建函数?