0

To scrape data from webpage which is opening after clicking a submit button

In this website I'm filling textbox showing place-holder #Tracking with this value 148459 after filling clicking Submit it opens another page, with details... I want to scrape the data on that page and bring it into Excel using VBA.

My guess is that the Submit button is using POST method; I need help to scrape the webpage with POST method.

I've worked out with below code:

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
Mathieu Guindon
  • 69,817
  • 8
  • 107
  • 235
Bharath Babu
  • 65
  • 2
  • 8

0 Answers0