我打算从下面的网站(马来语网站)中提取有关招标信息的信息。https://tender.selangor.my/results?type=tenders
我的代码如下,但是'tenders'对象显示为Nothing,导致我无法继续进行操作。希望您能分享一些有关我做错事情的指导。
Worksheets("Data").Cells.Clear
Dim xhr As Object
Dim html As New HTMLDocument
Dim tenders As Object, item As Object, item2 As Object
Dim tender As Object
Dim i As Integer
Set xhr = CreateObject("MSXML2.XMLHTTP")
With xhr
.Open "GET", "https://tender.selangor.my/results?type=tenders", False
.send
If .readyState = 4 And .Status = 200 Then
html.body.innerHTML = .responseText
Else
MsgBox "Error" & vbNewLine & "Ready state: " & .readyState & _
vbNewLine & "HTTP request status: " & .Status
End If
End With
Set tenders = html.getElementById("DataTables_Table_0")
您感兴趣的表格内容是动态生成的,因此您可以使用Internet Explorer
或发出带有适当参数的get http请求以使用第三方库来解析json内容。由于第一个选项很容易使用,因此我使用相同的示例创建了一个示例:
Sub GetInformation()
Dim tenders As Object
With CreateObject("InternetExplorer.Application")
.Visible = True
.navigate "https://tender.selangor.my/results?type=tenders"
While .Busy Or .readyState < 4: DoEvents: Wend
Application.Wait Now + TimeValue("00:00:05")
Set tenders = .document.getElementById("DataTables_Table_0")
Debug.Print tenders.innerText
.Quit
End With
End Sub