努力将分析师股价导入 Google 表格

Struggling to import analyst share price to GoogleSheets

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

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

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

我应该更改什么才能获得此实时信息? 谢谢

您正在检查的站点实际上是“javascript”生成的,因此导入函数无法在它们上正常工作。

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

样本 (tipranks.com)

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

我确实找到了一个与您要查找的数据相同的数据,50.38 for csiq。 Link 是“https://www.marketwatch.com/investing/stock/csiq/analystestimates”。由于数据显示为 table,因此使用 importhtml.

导入会更容易

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

示例输出:

table是DOM的第5个,INDEX(table, 2, 2)表示得到table的第2行第2列。

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

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

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

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

这是我设法得到的: 最低价格目标: =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]")

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

P.S。我对 marketwatch 分析师的价格目标不满意。我觉得群众的智慧在tipranks上更好。

试试这个。在 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']")