股票市场的变化时刻都在发生,对于投资者来说,及时了解股票的最新动态非常重要。而如何获取最新的股票信息呢?这里介绍一种利用vba进行网页抓取的方法,可以快速、准确地获取到所需要的股票数据。
1.准备工作
首先,需要打开Excel软件,并在其中创建一个新的工作表。接着,按下Alt + F11键,打开Visual Basic for Applications(VBA)编辑器窗口。在窗口中选择“插入”→“模块”,将下面的代码复制到新建的模块中。
(资料图片)
Sub Get_Stock_Data() Dim URL As String Dim XMLHTTP As Object Dim HTMLDoc As Object Dim Stock_Code As String Dim Stock_Name As String Dim Stock_Price As String Dim Stock_Change As String Worksheets("Sheet1").Range("A1:E1")= Array("Stock Code","Stock Name","Price","Change","Date") For i = 2 To 10 "获取前十个股票信息 Stock_Code = Worksheets("Sheet1").Cells(i,1).Value URL ="5e056c500a1c4b6a7110b50d807bade5:///quote/"& Stock_Code &"?p="& Stock_Code Set XMLHTTP = CreateObject("MSXML2.XMLHTTP") XMLHTTP.Open "GET", URL, False XMLHTTP.send Set HTMLDoc = CreateObject("htmlfile") HTMLDoc.body.innerHTML = XMLHTTP.responseText Stock_Name = HTMLDoc.getElementsByClassName("D(ib) Fz(18px)")(0).innerText Stock_Price = HTMLDoc.getElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px)D(ib)")(0).innerText Stock_Change = HTMLDoc.getElementsByClassName("Trsdu(0.3s) Fw(500) Pstart(10px) Fz(24px)C($positiveColor)")(0).innerText Worksheets("Sheet1").Cells(i,2).Value = Stock_Name Worksheets("Sheet1").Cells(i,3).Value = Stock_Price Worksheets("Sheet1").Cells(i,4).Value = Stock_Change Worksheets("Sheet1").Cells(i,5).Value = Now() Next i End Sub2.获取股票信息的具体步骤
Step 1:准备工作
在开始网页抓取之前,需要先准备好工作表和VBA代码。在工作表中,需要输入要获取的股票代码,并在第一行添加表头,如下图所示。
![image](5e056c500a1c4b6a7110b50d807bade5:///83950581/137914365-37eef7f8-40fb-4a6c-83d4-c7b9f9b551c7.png)
接着,在VBA编辑器中添加上文提供的代码。
Step 2:获取网页内容
在获取网页内容之前,需要先构造一个正确的URL地址。以获取“阿里巴巴”(股票代码为BABA)的股票数据为例,URL地址应该是:5e056c500a1c4b6a7110b50d807bade5:///quote/BABA?p=BABA。
接着,使用VBA的XMLHTTP对象发送GET请求,获取该URL地址对应的页面内容。在这里,我们将获取到的页面内容存储在HTMLDoc对象中。
Step 3:解析网页内容
在成功获取到网页内容之后,我们需要从中提取出所需的信息。在这里,我们主要需要提取出股票名称、股票价格和涨跌幅等数据。
通过查看网页源代码,我们可以发现,在Yahoo Finance网站上,股票名称、股票价格和涨跌幅数据分别对应着以下类名:
-股票名称:D(ib) Fz(18px)
-股票价格:Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px)D(ib)
-涨跌幅:Trsdu(0.3s) Fw(500) Pstart(10px) Fz(24px)C($positiveColor)
因此,我们可以使用HTMLDoc对象的getElementsByClassName方法来获取这些元素,并从中提取出所需的信息。
Step 4:将数据写入Excel工作表
最后一步是将获取到的股票数据写入到Excel工作表中。在这里,我们使用VBA代码将股票名称、股票价格、涨跌幅以及当前日期写入到工作表中。
3.总结
通过上述步骤,我们可以轻松地利用VBA实现股票信息的网页抓取。这种方法不仅可以帮助投资者及时了解股票市场的最新动态,还可以为量化投资提供有力支持。
标签: