Googlesheet importxml 使用 xpath 查找值

发布于 2025-01-10 18:51:11 字数 482 浏览 0 评论 0原文

我需要从此网站链接 =https://www.mql5.com/en/signals/1414510" rel="nofollow noreferrer">获取整数值“最大回撤”。 mql5.com/en/signals/1414510

从谷歌浏览器我尝试复制 xpath

//*[@id="radarChart"]/svg/text[8]/tspan[2]

然后在谷歌表中,我写道:

=importxml(https://www.mql5.com/en/signals/1414510, "//*[@id='radarChart']/svg/text[8]/tspan[2]")

它无法检索该值, 如何将正确的 xpath 写入值? 谢谢

I need to get the integer value "maximum drawdown" from this website link =https://www.mql5.com/en/signals/1414510,

from google chrome i tried copy the xpath

//*[@id="radarChart"]/svg/text[8]/tspan[2]

then in google sheet, i write:

=importxml(https://www.mql5.com/en/signals/1414510, "//*[@id='radarChart']/svg/text[8]/tspan[2]")

It cant retrieve the value,
How to write the correct xpath to the value?
thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

神也荒唐 2025-01-17 18:51:12

通过 xpath

尝试 https://www.mql5.com/en/signals/1409351

=regexextract(importxml(A1,"//div[@class='s-data-columns hoverable']"),"\((.*)\)")

在此处输入图像描述

进行概述,

=importxml(A1,"//div[@class='s-data-columns hoverable']")

我强烈建议首先测试此公式,以便通过 json

第二种方法可能是解析源中包含的 json (varradarChart)

function radarChart(url){
  var source = UrlFetchApp.fetch(url, {muteHttpExceptions: true}).getContentText().replace(/(\r\n|\n|\r|\t|  )/gm,"")
  var data = source.split(`new svgRadarChart($('radarChart'),[`)[1].split(']')[0]
  var values = (data.match(/value : ([^,]+)/g))
  var names = (data.match(/name : ([^,]+)/g))
  var val
  for (var i=0;i<names.length;i++){if (names[i]==`name : 'Maximum drawdown'`){val=values[i]}}
  return (val)
}

在此处输入图像描述

function radarChart(url){
  var source = UrlFetchApp.fetch(url, {muteHttpExceptions: true}).getContentText().replace(/(\r\n|\n|\r|\t|  )/gm,"")
  var data = source.split(`new svgRadarChart($('radarChart'),[`)[1].split(']')[0]
  var values = (data.match(/value : ([^,]+)/g))
  var names = (data.match(/name : ([^,]+)/g))
  var result = []
  for (var i=0;i<names.length;i++){
    result.push([names[i].replace('name : ','').replace(/'/g,''),values[i].replace('value : ','')])
  }
  return (result)
}

在此处输入图像描述

by xpath

Try for https://www.mql5.com/en/signals/1409351

=regexextract(importxml(A1,"//div[@class='s-data-columns hoverable']"),"\((.*)\)")

enter image description here

i highly recommand to test first this formula to have an overview

=importxml(A1,"//div[@class='s-data-columns hoverable']")

by json

the second way could be to parse the json contained in the source (var radarChart)

function radarChart(url){
  var source = UrlFetchApp.fetch(url, {muteHttpExceptions: true}).getContentText().replace(/(\r\n|\n|\r|\t|  )/gm,"")
  var data = source.split(`new svgRadarChart($('radarChart'),[`)[1].split(']')[0]
  var values = (data.match(/value : ([^,]+)/g))
  var names = (data.match(/name : ([^,]+)/g))
  var val
  for (var i=0;i<names.length;i++){if (names[i]==`name : 'Maximum drawdown'`){val=values[i]}}
  return (val)
}

enter image description here

or

function radarChart(url){
  var source = UrlFetchApp.fetch(url, {muteHttpExceptions: true}).getContentText().replace(/(\r\n|\n|\r|\t|  )/gm,"")
  var data = source.split(`new svgRadarChart($('radarChart'),[`)[1].split(']')[0]
  var values = (data.match(/value : ([^,]+)/g))
  var names = (data.match(/name : ([^,]+)/g))
  var result = []
  for (var i=0;i<names.length;i++){
    result.push([names[i].replace('name : ','').replace(/'/g,''),values[i].replace('value : ','')])
  }
  return (result)
}

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文