Vba 如何从新打开的网页中刮取数据?

Vba 如何从新打开的网页中刮取数据?,vba,excel,excel-automation,Vba,Excel,Excel Automation,从单击提交按钮后打开的网页中刮取数据 在“我正在填充”文本框中,显示占位符#跟踪,该值为148459,填充后单击“提交”,将打开另一页,其中包含详细信息。。。我想在该页面上刮取数据,并使用VBA将其导入Excel 我猜提交按钮使用的是POST方法;我需要帮助,以刮与张贴方法的网页 我使用以下代码进行了计算: Dim IE As New SHDocVw.InternetExplorer Dim HTMLDoc As MSHTML.HTMLDocument Dim HTMLInput

从单击提交按钮后打开的网页中刮取数据

在“我正在填充”文本框中,显示占位符#跟踪,该值为148459,填充后单击“提交”,将打开另一页,其中包含详细信息。。。我想在该页面上刮取数据,并使用VBA将其导入Excel

我猜提交按钮使用的是POST方法;我需要帮助,以刮与张贴方法的网页

我使用以下代码进行了计算:

Dim IE    As New SHDocVw.InternetExplorer
Dim HTMLDoc     As MSHTML.HTMLDocument
Dim HTMLInput   As MSHTML.IHTMLElement
Dim HTMLButton  As MSHTML.IHTMLElement
Dim HTMLButtons As MSHTML.IHTMLElementCollection

Dim HTMLAs As MSHTML.IHTMLElementCollection
Dim HTMLA As MSHTML.IHTMLElement
Dim txt As String
Dim delStat As String

txt = ActiveCell.Value
IE.Visible = True
'IE.Navigate "http://206.50.6.194/WebtrakWT/shipinquiry/quicktrack.aspx"
IE.Navigate "http://206.50.6.194/WebtrakWT/shipinquiry/ShipInfo.aspx?OrderNo=393874&Back=QuickTrack&TrackType=HousebillNo&TrackNo=" & txt
Do While IE.ReadyState <> READYSTATE_COMPLETE
Loop

Set HTMLDoc = IE.Document

'Set HTMLInput = HTMLDoc.getElementById("ddlTrackBy")
'HTMLInput.Value = "HousebillNo"
'Set HTMLInput = HTMLDoc.getElementById("txtInputNo")
'HTMLInput.Value = ActiveCell.Value
'Do While IE.ReadyState <> READYSTATE_COMPLETE
'    DoEvents
'    Loop
'Set HTMLButton = HTMLDoc.getElementById("btnSubmit")
'HTMLButton.Click

Do While IE.ReadyState <> READYSTATE_COMPLETE
    DoEvents
    Loop

Set HTMLAs = HTMLDoc.getElementsByTagName("span")

For Each HTMLA In HTMLAs
    Debug.Print HTMLA.getAttribute("id"), HTMLA.innerHTML
Next HTMLA

delStat = HTMLDoc.getElementById("lblStatus").innerHTML
Debug.Print delStat

If delStat = "DELIVERED" Then
ActiveCell.Offset(0, 5).Value = "Delivered"
Call screenShot
Else
ActiveCell.Offset(0, 5).Value = "Not Delivered"
End If

IE.Quit
Set IE = Nothing
Dim IE作为新的SHDocVw.InternetExplorer
将HTMLDoc设置为MSHTML.HTMLDocument
将HTMLInput设置为MSHTML.IHTMLElement
将HTMLButton设置为MSHTML.IHTMLElement
将HTMLButtons设置为MSHTML.IHTMLElementCollection
将HTMLAs设置为MSHTML.IHTMLElementCollection
将HTMLA设置为MSHTML.IHTMLElement
以字符串形式显示文本
Dim delStat作为字符串
txt=ActiveCell.Value
可见=真实
“即导航”http://206.50.6.194/WebtrakWT/shipinquiry/quicktrack.aspx"
即“导航”http://206.50.6.194/WebtrakWT/shipinquiry/ShipInfo.aspx?OrderNo=393874&Back=QuickTrack&TrackType=HousebillNo&TrackNo=“&txt
在IE.ReadyState ReadyState\u完成时执行此操作
环
设置HTMLDoc=IE.Document
'Set HTMLInput=HTMLDoc.getElementById(“ddlTrackBy”)
'HTMLInput.Value=“HousebillNo”
'Set HTMLInput=HTMLDoc.getElementById(“txtInputNo”)
'HTMLInput.Value=ActiveCell.Value
'在IE.ReadyState ReadyState\u完成时执行
”“是吗
'循环
'Set HTMLButton=HTMLDoc.getElementById(“btnSubmit”)
'HTMLButton.Click
在IE.ReadyState ReadyState\u完成时执行此操作
多芬特
环
设置HTMLAs=HTMLDoc.getElementsByTagName(“span”)
对于HTMLAs中的每个HTMLA
Debug.Print HTMLA.getAttribute(“id”),HTMLA.innerHTML
下一个HTMLA
delStat=HTMLDoc.getElementById(“lblStatus”).innerHTML
Debug.Print delStat
如果delStat=“已交付”,则
ActiveCell.Offset(0,5).Value=“已交付”
通话截图
其他的
ActiveCell.Offset(0,5).Value=“未交付”
如果结束
即退出
设置IE=无

您是否有任何代码可以帮助您从网页中获取?由于SO旨在帮助编码,而不是为您编码,因此它将有助于整个过程。嗨,西里尔。。我使用了下面的代码