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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д