将数据从网站拉到VBA

这可能属于新手愚蠢的问题。 但我真的不知道从哪里开始在VBA。 我尝试了一些不同的方法,试图从网站上提取数据,并且所有这些方法都失败了。 有人可以帮助我(或多或less告诉我)如何从这个网站上的数据?

https://rotogrinders.com/projected-stats/nfl?site=fanduel

它甚至不会让我做数据导入。 这是我到目前为止。 我一直卡在行t = 0到(Table.Length – 1)。

Sub test1() Dim appIE As Object Set appIE = CreateObject("internetexplorer.application") Dim Table As Object Dim t As Integer Dim r As Integer Dim c As Integer With appIE .Navigate "https://rotogrinders.com/projected-stats/nfl?site=fanduel" .Visible = True End With Do While appIE.Busy DoEvents Loop Set Table = appIE.document.getElementById("proj-stats") For t = 0 To (Table.Length - 1) For r = 0 To (Table(t).Rows.Length - 1) For c = 0 To (Table(t).Rows(r).Cells.Length - 1) ThisWorkbook.Worksheets(1).Cells(r + 1, c + 1) = Table(t).Rows(r).Cells(c).innerText Next c Next r Next t appIE.Quit Set appIE = Nothing End Sub 

你很近,有几种方法来获取数据。 我select提取所有行元素(HTML <TD> )并逐步完成一个简单的循环。 由于有六列,我使用两个variables(行和列rc )来抵消数据格式正确。

 Set Table = appIE.document.getElementsbytagname("td") r = 0 c = 0 For Each itm In Table Worksheets(1).Range("A1").Offset(r, c).Value = itm.innertext c = c + 1 If c Mod 6 = 0 Then r = r + 1 c = 0 End If Next itm 

示例结果:

在这里输入图像说明


最后一个注意事项,有时浏览器没有完成加载之前的脚本继续…我在循环之前使用一个断点作弊,等待,直到它加载,然后按F5继续执行的代码,以确保它会一直运行。