Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
545 / 375 / 16
Регистрация: 17.12.2009
Сообщений: 986
1

парсинг простейшей html таблицы с сайта

29.05.2020, 17:27. Показов 4801. Ответов 0

Author24 — интернет-сервис помощи студентам
Привет всем!
Натолкнулся на проблему с простейшим парсингом таблицы с сайта. Табличку и простейшую страничку создал на localhost, при заходе через веб браузер все работает и отображается нормально. Вот весь html код:
HTML5
1
2
3
4
5
6
7
8
9
10
<html>
<body>
<table class="myTable" id="myTable">
<tr><td>Цвет светофора</td><td>Свечение секунд</td></tr>
<tr><td>Красный</td><td>30</td></tr>
<tr><td>Желтый</td><td>5</td></tr>
<tr><td>Зеленый</td><td>15</td></tr>
</table>
</body>
</html>
Пытаюсь спарсить такую табличку через VBA и вывести значения на лист Excel. И почему то вылетает сообщение о неизвестной ошибке:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 Dim objIE As InternetExplorer
    Dim ele As Object
    Dim y As Integer
    
    Set objIE = New InternetExplorer
    objIE.Visible = True
    objIE.navigate "http://localhost/svetofor/index.html"
    'wait for page to load
    Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
    y = 1
    For Each ele In objIE.document.getElementById("myTable").getElementsByTagName("tr")
        Sheets("Sheet1").Range("A" & y).Value = ele.Children(0).textContent
        Sheets("Sheet1").Range("B" & y).Value = ele.Children(1).textContent   
        y = y + 1
    Next
    ActiveWorkbook.Save
Подскажите пожалуйста, как можно спарсить значение таблицы с сайта, в моем простом примере светофор. Сама страница отлично работает и все отображается. Код взаимодействия VBA и веб взял из сети и он отлично работает на другом ресурсе.
Но в моем случае почему то выскакивает ошибка.

Добавлено через 1 час 39 минут
Я разобрался со своей проблемой достаточно лаконично. Пошел через модель самой таблицы html , её строками и ячейками в структуре документа HTML. Скорость работы мгновенная, по сравнению с примером ч/з IE:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim htm As Object: Set htm = CreateObject("htmlfile")
Dim tr As Object
Dim td As Object
Dim x As Long
Dim y As Long
    With CreateObject("msxml2.xmlhttp")
        .Open "POST", "http://localhost/svetofor", False
        .send
        htm.body.innerHTML = .responseText
    End With
    With htm.getElementsByTagName("table").Item(0)
        For Each tr In .Rows
       MsgBox tr.Cells(0).innerText
       MsgBox tr.Cells(1).innerText
        Next tr
    End With
Возникает вопрос, в данном примере используется селектор htm.getElementsByTagName("table").Item(0) ,который отлично цепляет по тегу <table> таблицу , с индексом данной таблицы в структуре DOM равной 0 (Item(0)) Проблема по топику решена на ура. Пришлось немного покопаться на сайтах по html.

Но почему то отсутствует возможность цеплять таблицу по селектору класса getElementsByClassName("myTable").Item(0). И фиг знает почему. Это больше факультативный вопрос уже. Никто не может в рамках написанного мною кода доточить его так,чтобы можно было цеплятся за имя класса class="myTable" таблицы или за его id="myTable"

Добавлено через 1 час 17 минут
Всё, разобрался со всем, вопрос снят)
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2020, 17:27
Ответы с готовыми решениями:

Парсинг HTML-таблицы
есть самая простая доска объявлений. В хтмле идут формы, и обработчик заносит в базу содержимое...

Парсинг таблицы HTML
По этому коду получается вся таблциа в 1 строку string html =...

Парсинг html блока с сайта
Прошу помощи у специалистов. Нужно спарсить блок праздников (справа) сайта...

значения из html таблицы (парсинг)
Всем привет! Ребят помогите с парсингом html таблицы таблица вида &lt;td class=&quot;Date&quot;...

0
29.05.2020, 17:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2020, 17:27
Помогаю со студенческими работами здесь

Парсинг таблицы в html файле
Приветствую. Имеется кучка html-файлов следующего содержания: * &lt;tr&gt; &lt;td&gt;&lt;a...

Парсинг данных из html-таблицы
Добрый вечер! Прошу помочь разобраться в парсинге данных из html таблицы &lt;tr&gt; &lt;th...

Парсинг html кода с сайта tchromium
Уже 4 день подряд пытаюсь написать программу которая копировала б html код с сайта в мемо...

Получение и парсинг HTML с другого сайта
Та еще задачка =/ Сайт №1 - мой сайт Сайт №2 - не мой сайт на сайте №2 есть HTML элементы с...

Парсинг таблицы с сайта
Добрый день. Для парсинга использую библиотеку xNet Но наткнулся на сайтик.. там используется вот...

Парсинг большой html таблицы в mysql
Добрый день. Задача: Имеется html таблица на удаленном ресурсе... нужно сделать парсинг td...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru