powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / vba: загрузка html-страницы с элементом ajax
3 сообщений из 3, страница 1 из 1
vba: загрузка html-страницы с элементом ajax
    #38636020
deadmorozzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Пытаюсь загрузить с помощью макроса вот такую страницу:
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] определить никак не могу. Поможите кто может, как загрузить подобную страницу?
...
Рейтинг: 0 / 0
vba: загрузка html-страницы с элементом ajax
    #38636102
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deadmorozzz,
у нужного Вам элемента (ссылки) нет ИД. Как вариант - перебрать все ссылки в документе и выбрать по классу искомую.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
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

...
Рейтинг: 0 / 0
vba: загрузка html-страницы с элементом ajax
    #38636234
deadmorozzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работает. Потрясающе. Спасибо!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / vba: загрузка html-страницы с элементом ajax
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]