I am trying to get table data from an aspx page using excel vba.I know how to get table data from a url, but below is the main problem.
Problem
There is an aspx page (say, www.abc.aspx). I am now on this page. Indicate this page page1 .
Now I click the page2 link on the current page. It should be noted that after clicking this link, the old URL (www.abc.aspx) does not change, but the contents change. (Content p. 2 )
If you are viewing the page1 source code, it has
<form method="post" action="page1 url" id="Form1">
Whatever the action on page1 (click on page2 ), it returns the same URL page1 .
So, how can I get page2 table data in excel VBA, since I donβt know its URL?
code
This is what I used to get the table data.
I used the Internet explorer object. Then he went to the link and saved the document in htmldoc.
ie.navigate "url" Do While ie.READYSTATE <> READYSTATE_COMPLETE Application.StatusBar = "Fetching data..." DoEvents Loop Set htmldoc = ie.document 'Column headers Set eleColth = htmldoc.getElementsByTagName("th") j = 0 'start with the first value in the th collection For Each eleCol In eleColth 'for each element in the td collection ThisWorkbook.Sheets(1).Range("A1").Offset(i, j).Value = eleCol.innerText 'paste the inner text of the td element, and offset at the same time j = j + 1 'move to next element in td collection Next eleCol 'rinse and repeat 'Content Set eleColtr = htmldoc.getElementsByTagName("tr") 'This section populates Excel i = 0 'start with first value in tr collection For Each eleRow In eleColtr 'for each element in the tr collection Set eleColtd = htmldoc.getElementsByTagName("tr")(i).getElementsByTagName("td") 'get all the td elements in that specific tr j = 0 'start with the first value in the td collection For Each eleCol In eleColtd 'for each element in the td collection ThisWorkbook.Sheets(1).Range("D3").Offset(i, j).Value = eleCol.innerText 'paste the inner text of the td element, and offset at the same time j = j + 1 'move to next element in td collection Next eleCol 'rinse and repeat i = i + 1 'move to next element in td collection Next eleRow 'rinse and repeat ie.Quit Set ie = Nothing
EDIT:
Example
If we click on the questions in the stack overflow ( https://stackoverflow.com/a/166269/ ) and now click on page 2 of the questions (new link https://stackoverflow.com/questions/ ... ? Page = 2 & sort = newest)
In my case, if we press page2 , the new link will not be updated. This is the same old link.
EDIT . I found a similar question here.
How to get url hidden by javascript on external website?
Thanks.