|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.09.2012, 21:55 | #1 |
Регистрация: 11.05.2012
Сообщений: 4
|
как обрабатывать элементы содержимого ячеек таблицы на Web странице?
Уважаемые форумчане!
подскажите, пожалуйста: как с помощью VBA Excell корректно обрабатывать различные элементы содержимого ячеек таблицы, расположенной на Web странице? примерный фрагмент кода: Set oIE = CreateObject("internetexplorer.appl ication") oIE.Navigate LINK Do While oIE.ReadyState <> 4: loop COUNT = oIE.Document.forms(1).all.tags("tab le").Item(1).Rows(1).Cells(1).all.L ength ‘при выполнении, программа показывает, что COUNT =7 - т.е. насколько я понимаю, в данной ячейке должно быть 7 элементов Далее, мне необходимо считать значение элемента "output__compensation", который находится в данной ячейке (см. HTML код) Но я не знаю, как правильно указать ссылку на данный элемент ячейки HTML код данной ячейки следующий: <td class="b-userlist-table-compensation"><div class="b-userlist-table-compensation-block"><span class="output__compensation">6 500 </span></div><div class="b-userlist-table-photo" onclick="return {types: ['{HHGallery2}.Gallery']}" id="rndCompId76ec35ecbca7900e"><di v onclick="return {params: {id: ''}}" class="Gallery2-Item"><a title="" class="Gallery2-Item-Link" href="/photo/395489872.jpeg?t=1347211821&s=7 75b970b19d406a824b707370aaee"><img class="Gallery2-Item-Thumb" src="/photo/395489874.jpeg?t=1347211821&" />[/url]</div></div><script type="text/javascript">jsx.require(['Components'], function(){jsx.Components.createCom ponents([document.getElementById('rndCompId7 6ec35ecbca7900e')])});</script></td> Заранее большое спасибо за помощь |
09.09.2012, 00:08 | #2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Я предпочитаю такой алгоритм парсинга страницы,через счетчик можно напороться на объедененные ячейки
Код:
Код:
Анализ,обработка данных Недорого
Последний раз редактировалось doober; 09.09.2012 в 00:32. |
09.09.2012, 00:51 | #3 | ||
Форумчанин
Регистрация: 26.04.2010
Сообщений: 450
|
Цитата:
Цитата:
Для тех, кому не чужды скриптовые языки - ScriptControl
Тишина – самый громкий звук
Последний раз редактировалось nerv; 09.09.2012 в 01:14. |
||
09.09.2012, 01:18 | #4 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
А не проще ли средствами Excel создать веб-запрос, и работать с ячейками уже в Excel?
(такой запрос можно и макросом создать) Не всегда, конечно, это помогает, но очень часто позволяет обойтись без парсинга HTML |
09.09.2012, 01:59 | #5 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 450
|
пример слепил : )
Код:
Тишина – самый громкий звук
|
09.09.2012, 15:31 | #6 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
nerv, код очень интересный, но что он делает?
Я с javascript не дружу, поэтому не совсем понимаю, что должно произойти при выполнении этого кода. Я запустил макрос из файла-примера - с виду, ничего не произошло. |
09.09.2012, 18:25 | #7 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 |
09.09.2012, 19:05 | #8 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 450
|
EducatedFool, по идее должно показываться название темы в диалоговом окне. Можешь попробовать еще раз?
Вопрос к форумчанам: у кого еще не работает код? Если уж заговорил об "интересностях": - получение количества измерений массива - создание объекта "на ходу" без модуля класса - модификация созданного объекта: добавление/удаление свойств (опять-таки "на ходу") kuklp, спс. Мне "на интерес", а не на результат )
Тишина – самый громкий звук
Последний раз редактировалось nerv; 09.09.2012 в 19:09. |
09.09.2012, 21:52 | #9 |
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
Александр, первый раз запустил .... ничего, в пошаговом вывело сообщение с названием темы, потом нормально выводило, возможно таймаута не хватает.
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
|
09.09.2012, 23:42 | #10 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Результат, разумеется, тот же (3 секунды думает, ничего не происходит) Если файл для тестирования тот же - что может измениться? Запускал как из VBE, так и с кнопки на листе. Да и вообще, запускать макросы я умею) Видимо, чем-то настройки моей системы отличаются от твоей (у меня WinXP 32бит, IE7, браузер по умолчанию - Chrome, во всех браузерах все скрипты разрешены) Да и вообще, у меня все макросы всегда работают) Так что, видимо, код не очень универсальный. (добавлено позже) прочитал коммент R Dmitry, тоже попробовал в пошаговом режиме, - заработало. Цитата:
Не ожидал, что можно делать подобное в VBA. По-любому бы нашел, где эти возможности применить в своих макросах, но, увы, с возможностями js не знаком, поэтому пользы от применения пока будет мало. Впрочем, пока со всем справляюсь возможностями VBA (c модулями классов), а изучать js - пока времени нет.
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 09.09.2012 в 23:46. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Изображение как фон одной из ячеек таблицы | rmv240899 | HTML и CSS | 1 | 07.08.2012 20:41 |
Удаление содержимого ячеек | spirit-ua | Microsoft Office Excel | 3 | 22.06.2011 08:13 |
Защита содержимого ячеек от изменении | roborrr | Microsoft Office Excel | 5 | 25.04.2011 13:11 |
Как удалить элементы таблицы в RichEdit? | artemavd | Общие вопросы Delphi | 3 | 10.04.2011 19:31 |
Как импортировать в MySql таблицы из web? | NurNet | Общие вопросы .NET | 1 | 19.08.2009 09:37 |