Excel VBA zapytuje zewnętrzną stronę .aspx i pobiera dane

Walczyłem z tym przez około dzień. Zasadniczo chcę napisać makro excela, aby przejrzeć listę w Excelu, zapytać o stronę internetową i pobrać niektóre dane. W idealnej sytuacji chcę pobrać potrzebne dane, aby móc je umieścić w sąsiedniej komórce, ale zrobię wszystko, co w tym momencie zajmie.

Strona jest ASP.net, w której nie mam doświadczenia; jeśli to był .php, prawdopodobnie mógłbym zarządzać, ale nie jestem nawet pewien, jak wysyłać do .aspx przez javascript.

Mogę dobrze przejrzeć moje dane, a kiedy otrzymam dane, mogę je napisać do Excela, więc są dwie części, z którymi zmagam się:

Część 1 - odpytywanie strony internetowej

To jest strona, którą chcę zapytać. Muszę szukać wProperty Address i pobieraj dane z wyników. Adres, którego użyję dla przykładu, to400 W Church St. Pomyślałem, że przesłanie formularza takiego jak „... / ParcelSearch.aspx? Name = ... & value = ...” może być proste, ale nie ma kości.

Część 2 - chwytanie danych

Na wynikach znajduje się tabelaDetailsSummary_Master do góry, z zestawami pól, które są zdefiniowane za pomocą<legend> tagi. Potrzebuję danych<legend>Municipality</legend>:

Nie wiem, co zrobić, przejść przez<td>s? Myślałem, że mógłbym dostać GetElementByID lub może tag, ale nie potrafię tego zrozumieć.

VBA

Do tej pory użyłem kilku wątków SO, aby to zrozumieć.Pierwszy, druga iTrzeci, ale nie wydaje mi się nawet, żeby poprawnie działał POST. Na razie trzymam osobne subwoofery.

Oto, co mam (skradziony z innego wątku) w odniesieniu do mojego problemu:

Sub SubmitForm()

Dim objIE As Object
Dim xmlhttp As Object
Dim ieButton As Object
Dim strResponse As String
Dim strUrl As String
Dim strID As String
Dim strValue As String
Dim strSubmit As String

strID = "?name=ctl00_ctl00_ctl00_ctl00_ContentMain_ContentMain_ContentMain_ContentMain_TabContainer1_Searches_SubTabContainer1_QuickSearches_CompositAddressSearch1_AddressSearch1_ctl00_Address&value="
strValue = "400 W Church St"
strSubmit = strID & strValue


strUrl = "http://www.ocpafl.org/searches/ParcelSearch.aspx"
Set objIE = CreateObject("InternetExplorer.Application")
objIE.navigate "about:blank"
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")

'~~> Indicates that page that will receive the request and the type of request being submitted
xmlhttp.Open "POST", "http://www.ocpafl.org/searches/ParcelSearch.aspx", False

'~~> Indicate that the body of the request contains form data
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

'~~> Send the data as name/value pairs
xmlhttp.Send "strSubmit"
strResponse = xmlhttp.responseText
objIE.navigate strUrl
objIE.Visible = True

Do While objIE.readystate <> 4
    DoEvents
Loop

objIE.document.Write strResponse

Set xmlhttp = Nothing

End Sub

Właściwie nie muszę go uruchamiać przez IE, chciałbym go uruchomić w ukryciu. Używam tego w programie Excel 2007 w pracy, ale mam 2010 w domu. Mamy też śmieszne IE8, więc im mniej, tym lepiej. I mogę zapętlić lub użyć tablicy, ale nie mogę po prostu połączyć się z zapytaniem. Każda pomoc byłaby bardzo mile widziana.

questionAnswers(1)

yourAnswerToTheQuestion