Google sheets 尝试刷新导入XML xpath查询时,jquery字符串会更改URL并中断请求
我已经成功地使用importxml从espn.com上的NBA现场比赛中提取数据。但是,我需要importxml函数每分钟(或某些频繁的时间)刷新一次,以保持获取实时数据并在我的google工作表中更新它 我在网上找到了这个脚本来刷新导入xml,但它在URL的末尾添加了一个jquery字符串,用于缓存破坏。URL末尾的jquery字符串将URL从特定游戏中更改为如下所示: (这将成功获取数据)返回NBA记分板: 我需要import xml函数在缓存破坏时成功刷新,而不在URL末尾添加随机数,因为如果发生这种情况,espn会将您发送到另一个页面 这是我成功使用的导入XML函数Google sheets 尝试刷新导入XML xpath查询时,jquery字符串会更改URL并中断请求,google-sheets,google-sheets-formula,google-sheets-importxml,Google Sheets,Google Sheets Formula,Google Sheets Importxml,我已经成功地使用importxml从espn.com上的NBA现场比赛中提取数据。但是,我需要importxml函数每分钟(或某些频繁的时间)刷新一次,以保持获取实时数据并在我的google工作表中更新它 我在网上找到了这个脚本来刷新导入xml,但它在URL的末尾添加了一个jquery字符串,用于缓存破坏。URL末尾的jquery字符串将URL从特定游戏中更改为如下所示: (这将成功获取数据)返回NBA记分板: 我需要import xml函数在缓存破坏时成功刷新,而不在URL末尾添加随机数,因
=IMPORTXML("https://www.espn.com/nba/matchup?gameId=401161049","//tr[20]")
非常感谢您,我对编码了解不多。假设您的导入公式位于单元格A2中,您将进行以下修改:
=IMPORTXML("your link&"&A1,"your xpath")
然后在A1单元中
=today()^0+A1
不要忘记启用以下设置:
祝贺它每分钟更新一次并进行编辑。回答:
您可以使用基于时间的应用程序脚本触发器每分钟启动一次并更新相关单元格
更多信息:
从Tools>scripteditor
菜单项中,可以使用以下代码创建函数:
函数updateTheSheet(){
变量公式='=导入XML(“https://www.espn.com/nba/matchup?gameId=401161049“,”//tr[20]”
ss=SpreadsheetApp.getActiveSpreadsheet()
ss.getSheets()[0].getRange('A2').setFormula(公式);
}
假设您希望更新的单元格位于第一张工作表中的单元格A2中。您可以在getRange()
函数中对此进行更改
从这里,使用保存图标保存脚本,然后按运行按钮(►), 并确认运行脚本的身份验证
从这里开始,在编辑>当前项目的触发器
菜单项之后,您将在G Suite Developer Hub中打开一个新页面。单击右下角的+添加触发器
按钮,设置触发器设置,如下所示:
- 选择要运行的函数:
updateTheSheet
- 选择应运行的部署:
Head
- 选择事件源:
时间驱动
- 选择基于时间的触发器类型:
Minutes timer
- 选择分钟间隔:
每分钟
导入内容为空
您不能使用rand()在导入函数中,我甚至不知道您是如何测试随机数的。我刚刚意识到,在我的原始帖子中,我有一个末尾带有jquery字符串的importxml,它不起作用……我现在修复了它,如果您复制并粘贴它,它会正确地获取数据。我尝试使用您的解决方案,但无法使它与我拥有的importxml一起工作,它只是ays加载…你的公式在说加载…
,即使没有修改我的公式。试试看,只要删除我编辑的部分,你就会看到它仍然在说加载…
我不确定它是谷歌还是网站,但在更改公式或刷新3或4次后,它似乎只是停留在加载上
我的解决方案也有同样的问题。是的,codecamper说它为我更新了一次,然后停止工作。我认为这与人们在网上谈论的“缓存破坏”有关。缓存破坏可以通过在URL末尾创建一个唯一的URL和jquery字符串来解决(就像我在网上找到的原始脚本解决方案一样),但是在这个特定的ESPN链接中,jquery字符串会将URL更改为不同的网页,因此importxml不会导入数据correctly@Kyle我的床单还在-你还在经历吗?