【问题标题】:Struggling to import analyst share price to GoogleSheets努力将分析师股价导入 Google 表格
【发布时间】:2021-01-18 15:15:15
【问题描述】:

我正在尝试创建一个从 TipRanks 网站导入分析师价格目标的列。 我上传了两张图片:

Image 1: you can see the cell that I want to import.

Image 2: you can see my function that doesn't work.

我应该进行哪些更改才能获得此实时信息? 谢谢。

【问题讨论】:

  • 您好,欢迎来到 SO。请不要在您的问题中包含图片,而是Minimal, Reproducible Example。否则没有人可以复制粘贴您尝试过的内容,并且您不太可能得到好的答案。

标签: api google-sheets google-sheets-formula stock


【解决方案1】:

您正在检查的网站实际上是“javascript”生成的,因此导入功能将无法正常工作。

要检查,只需尝试导入整个站点数据。如果它返回一个javascript函数,那么它就是javascript生成的。

示例 (tipranks.com)

实际上,您可以尝试寻找提供相同数据的其他网站。

我确实找到了一个与您正在寻找的数据相同的数据,50.38 for csiq。链接是“https://www.marketwatch.com/investing/stock/csiq/analystestimates”。由于数据显示为表格,使用importhtml 导入会更容易。

单元格公式为: =INDEX(IMPORTHTML("https://www.marketwatch.com/investing/stock/csiq/analystestimates", "table", 5), 2, 2)

示例输出:

表格是DOM中的第五个,INDEX(table, 2, 2)表示获取表格的第2行第2列。

如果该网站不适合您,您可以尝试寻找其他适合您需求的网站。然后根据站点结构使用importhtmlimportxml

【讨论】:

  • 首先 - 非常感谢您的回答。现在对我来说已经足够好了。有没有办法让这个公式更聪明?而不是手动编辑股票的名称,有什么方法可以这样做(A2 - 我表中的单元格): =INDEX(IMPORTHTML("marketwatch.com/investing/stock/A2/analystestimates", "table", 5), 2, 2)
  • 感谢您接受答复。对于您的问题,您可以通过以下方式引用单元格:=INDEX(IMPORTHTML("https://www.marketwatch.com/investing/stock/"&A2&"/analystestimates", "table", 5), 2, 2)
  • 非常感谢!
【解决方案2】:

当您在网站加载时检查网络时,您会看到调用预测端点 https://www.tipranks.com/stocks/tsla/forecast 时会出现价格。这反过来会返回一个 html 响应,该响应可能是在客户端使用 Javascript 生成的,因为它们在前端使用 React,但您仍然可以在浏览器开发工具的“网络”选项卡中看到预览。

然后,您可以在 VSCode 中复制预览并对其进行美化,以尝试确定保持价格的跨度。当然这不会是精确的科学,因为 html 标签是通过一些媒体查询生成的,但在某种程度上你会足够接近。

在你得到xml路径但得到一个空错误后,你可以删除一些标签,直到你得到一些文本。使用谷歌表格中的搜索来搜索最高价格标签,然后继续添加标签,直到获得所需的值。

这是我设法得到的: 最低目标价: =importxml("https://www.tipranks.com/stocks/snow/forecast", "/html/body/div[1]/div[1]/div[4]/div[1]/div[2]/div[1]/div[4]/div[2]/div[2]/div[4]/div[1]/div[1]/div[5]/span[2]")

平均目标价: =importxml("https://www.tipranks.com/stocks/snow/forecast", "/html/body/div[1]/div[1]/div[4]/div[1]/div[2]/div[1]/div[4]/div[2]/div[2]/div[4]/div[1]/div[1]/div[3]/span[2]")

最高目标价: =importxml("https://www.tipranks.com/stocks/snow/forecast", "/html/body/div[1]/div[1]/div[4]/div[1]/div[2]/div[1]/div[4]/div[2]/div[2]/div[4]/div[1]/div[1]/div[1]/span[2]")

随着时间的推移,这些方法可能会根据它们的开发过程而改变,但您可以使用上述步骤来更新脚本。

附:我对市场观察分析师的价格目标不满意。我认为人群的智慧在小费上更好。

【讨论】:

    【解决方案3】:

    试试这个。在我在 Google 表格上的个人股票投资组合中运行良好:

    最低价格目标:

    =importxml(CONCATENATE("https://www.tipranks.com/stocks/", A1,"/forecast"), "//*[@class='colorpurple-dark  ml3 mobile_fontSize7 laptop_ml0']")
    

    平均价格目标:

    =importxml(CONCATENATE("https://www.tipranks.com/stocks/", A4,"/forecast"), "//*[@class='colorgray-1  ml3 mobile_fontSize7 laptop_ml0']")
    

    最高价格目标:

    =importxml(CONCATENATE("https://www.tipranks.com/stocks/", A4,"/forecast"), "//*[@class='colorpale  ml3 mobile_fontSize7 laptop_ml0']")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      • 2020-10-08
      • 2021-12-12
      • 1970-01-01
      • 2020-08-23
      • 1970-01-01
      相关资源
      最近更新 更多