Всем добрый вечер! Есть сайт http://www.nowgoal.com/6in1.aspx?id=31. Пытаюсь парсить HTML код, но проблема в том, что пока данные на сайте подгружаются, HTML код не содержит нужных данных, а с помощью своего кода получаю именно HTML-код "заставки". Вопрос в том, как получить уже "прогруженный" код страницы.
Код
Sub primer()
Dim my_url As String
Dim html_doc As Variant, xml_obj As Variant
Dim Tag_tab As Object
my_url = "http://www.nowgoal.com/6in1.aspx?id=31"
Set html_doc = CreateObject("htmlfile")
Set xml_obj = CreateObject("MSXML2.XMLHTTP")
xml_obj.Open "GET", my_url, False
xml_obj.send
html_doc.body.InnerHTML = xml_obj.responseText
Set xml_obj = Nothing
MsgBox html_doc.body.getElementsByTagName("table")(0).getElementsByTagName("tr")(0).innertext
End Sub
' создаём объект IE
Set IE = CreateObject("InternetExplorer.Application")
' переходим по ссылке в браузере
IE.Navigate URL
' ждём, пока страница загрузиться
While IE.Busy Or (IE.ReadyState <> 4): DoEvents: Wend
' считываем HTML код веб-страницы в текстовую переменную
Code$ = IE.Document.body.innerHtml
2) заметно усложнять код, выполняя пост запросы, как это делает скрипт в браузере после загрузки страницы
Игорь, добрый день! С вашей помощью код работал долгое время без проблем. Вчера-сегодня страница не прогружается (на сайте видимых проблем нет), опять получаю "заставку". Не подскажете в чем может быть проблема?
Здравствуйте! В продолжение темы. Время идет и сайт регулярно модернизируется. Парсер конечно же перестает работать. Столкнулся с новой проблемой, которую сам не смог решить. И так, суть проблемы. Имеем тот же сайт https://www.nowgoal5.com/football/6in1/?id=23 Методами, которые описаны выше в топе, получаю исходный код страницы. Но проблема в том, что он не содержит нужные мне данные и проблема не решается даже при полной прогрузке страницы. Для понимания и наглядности, мне нужны данные, которые содержатся в следующих таблицах
Код элемента у них такой -тег <table> (содержит все необходимые данные):
Но в коде страницы это выглядит так:
То есть контейнер </ div id="odds"></div> открылся и тут же закрылся, не предоставив никаких данных парсеру. На сколько я понимаю, дело в скриптах. Собственно вопрос в том, возможно ли средствами VBA получить полный код страницы? Буду признателен за любую помощь и замечания.
Ну так вы смотрели исходный код страницы в современном браузере, типа Chrome Там тег непустой, ибо скрипт отрабатывает Ваш же макрос использует браузер IE Открыв ссылку в браузере IE, вы обнаружите, что отныне скрипты в нём не отрабатывают, и потому данные на странице не отображаются. Соответственно, таким способом эти данные больше не извлечь