Vba: загрузка html-страницы с элементом ajax
Формулировка задачи:
Всем привет!
Пытаюсь загрузить с помощью макроса вот такую страницу:
http://ria.ru/politics/
Внизу имеется кнопка "еще 20 материалов", которая дает доступ к новым ссылкам.
Однако стандартный способ:
Function download_web_page(addr$) As String
Set IE = CreateObject("InternetExplorer.Application"): On Error Resume Next
IE.Navigate addr$
While IE.busy Or (IE.readyState <> 3): DoEvents: Wend
Set IEDoc = IE.Document
IEDoc.getElementById("a.list_pagination_next").Click
While IE.busy Or (IE.readyState <> 3): DoEvents: Wend
Set IEDoc = IE.Document
txt$ = IE.Document.body.innerText
IE.Quit: Set IE = Nothing
download_web_page = txt
End Function
не дает ожидаемого результата - собственно, id в выражении [IEDoc.getElementById("a.list_pagination_next").Click] определить никак не могу. Поможите кто может, как загрузить подобную страницу?
Пытаюсь загрузить с помощью макроса вот такую страницу:
http://ria.ru/politics/
Внизу имеется кнопка "еще 20 материалов", которая дает доступ к новым ссылкам.
Однако стандартный способ:
Function download_web_page(addr$) As String
Set IE = CreateObject("InternetExplorer.Application"): On Error Resume Next
IE.Navigate addr$
While IE.busy Or (IE.readyState <> 3): DoEvents: Wend
Set IEDoc = IE.Document
IEDoc.getElementById("a.list_pagination_next").Click
While IE.busy Or (IE.readyState <> 3): DoEvents: Wend
Set IEDoc = IE.Document
txt$ = IE.Document.body.innerText
IE.Quit: Set IE = Nothing
download_web_page = txt
End Function
не дает ожидаемого результата - собственно, id в выражении [IEDoc.getElementById("a.list_pagination_next").Click] определить никак не могу. Поможите кто может, как загрузить подобную страницу?
Решение задачи: «Vba: загрузка html-страницы с элементом ajax»
textual
Листинг программы
Function download_web_page(addr$) As String
Set IE = CreateObject("InternetExplorer.Application"): On Error Resume Next
IE.Navigate addr$
While IE.busy Or (IE.readyState <> 3): DoEvents: Wend
Set IEDoc = IE.Document
'IEDoc.getElementById("a.list_pagination_next").Click
GetNextPageA(IEDoc).Click
While IE.busy Or (IE.readyState <> 3): DoEvents: Wend
Set IEDoc = IE.Document
txt$ = IE.Document.body.innerText
IE.Quit: Set IE = Nothing
download_web_page = txt
End Function
' --------------------------------------------
Function GetNextPageA(doc)
For Each a In doc.getElementsByTagName("A")
If "list_pagination_next" = a.className Then
Set GetNextPageA = a
Exit For
End If
Next
End Function