使用Excel VBA从谷歌或彭博社获取股票报价,认为我是一个机器人



我正在尝试创建一个Excel宏,该宏将从Google或彭博社获取股票报价。每个站点似乎都检测到我没有从网络浏览器调用,并拒绝工作。

这是我的代码的简化版本,演示了这个问题。如果将 URL 值直接复制并粘贴到 Web 浏览器中,则工作正常。但是如果你看一下我的代码返回的结果,它基本上是一条消息,"我们认为你不是人类。有什么办法吗?

(彭博版本实际上更可取,因为它返回 JSON。谷歌版本返回我必须解析的 HTML。但在这一点上,我会采取任何东西。

Private Sub TestQuote()
Dim sURL As String
Dim http As WinHttp.WinHttpRequest
'BLOOMBERG QUERY
sURL = "https://www.bloomberg.com/markets/api/bulk-time-series/price/MSFT%3AUS?timeFrame=1_DAY"
'GOOGLE QUERY
'sURL = "https://www.google.com/search?q=MSFT"
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
http.Open "GET", sURL, False
http.send
Debug.Print http.responseText
End Sub

正如@OwlsSleeping在评论中提到的,当前版本的Excel内置了此功能(查找股票信息的能力(。

从文档页面获取股票报价

获取股票报价

Excel for Microsoft 365Excel for Microsoft 365 for Mac Excel for Web

若要在 Excel 中插入股票价格,请先将文本转换为"股票"数据类型。然后,您可以使用另一列提取与该数据类型相关的某些详细信息,例如股票价格、价格变化等。

注意:股票数据类型仅适用于Microsoft 365 帐户或拥有免费Microsoft帐户的帐户。还必须将英语、法语、德语、意大利语、西班牙语或葡萄牙语编辑语言添加到 Office 语言首选项。

  1. 在单元格中键入一些文本。例如,在每个单元格中键入股票代码、公司名称或基金名称。
  2. 然后选择单元格。
  3. 尽管这不是必需的,但我们建议创建 Excel 表。稍后,这将使提取在线信息变得更加容易。要创建表格,请转到插入表格>。
  4. 在单元格仍处于选中状态的情况下,转到"数据"选项卡,然后单击"股票"。
  5. 如果 Excel 发现单元格中的文本与我们的在线资源匹配,它会将您的文本转换为"股票"数据类型。如果他们有股票图标,你就会知道它们被转换了......
  6. 选择一个或多个数据类型的单元格,然后 添加列 按钮将出现。单击该按钮,然后单击字段名称以提取详细信息。例如,对于股票,您可以选择价格。

。(更多详细信息可在在线文档中找到(

最新更新