|
Как считать данные с веб страницы
|
|||
---|---|---|---|
#18+
Добрый день, Понимаю, что не первый с таким вопросом, но очень нужна помощь, так как сам уже запутался. Я пишу макрос на ВБА, который должен поднятнуть немного данных с веб страницы. На ней есть несколько таблиц вида: <tr height="10%"> <td class="dm-section-header" width="20%"> <table> <tr> <td> <div align="left"> <Table width="100%"> <tr> <td class="dm-attribute"> <div align="left">Bank Account Number</div> </td> <td class="dm-value"> <div align="left">30000000000000000005</div> </td> </tr> </Table> </div> </td> <td width="80%"> </td> <td width="10%"> <div align="right"> <Table width="100%"> <tr> <td class="dm-attribute"> <div align="right">Statement Date</div> </td> <td class="dm-value"> <div align="left">27-Dec-10</div> </td> </tr> </Table> </div> </td> </tr> <tr> <td width="20%"> <div align="left"> <Table width="100%"> <tr> <td class="dm-attribute"> <div align="left">Bank ID</div> </td> <td class="dm-value"> <div align="left">MICRB</div> </td> </tr> </Table> </div> </td> <td colspan=2 width="80%"> </td> </tr> </table> </td> </tr> Я не пойму как достучаться до содержимого таблицы, используя доступные в ВБА типа переменных. Есть такой код: Dim mySt As HTMLDocument Dim myTable As IHTMLTable Dim myTags As IHTMLElementCollection Dim myTag As IHTMLElement Dim myBodys As IHTMLElementCollection Dim element As IHTMLElement Set mySt = IE.document Set myTags = mySt.all.tags("table") или Set myTable = mySt.all.tags("table") For Each myTable In mySt.all.tags("table") Set myBodys = myTable.tags("td") For Each element In myBodys Next Next Но он не хочет работать. Кто-нибудь может подсказать по иерархии, пожалуйста? Или подсказать какое-нибудь чтиво для взаимодействия ВБА и HTML? Близких себе аналогичных примеров не нашел. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2010, 17:04 |
|
Как считать данные с веб страницы
|
|||
---|---|---|---|
#18+
microdin, Ваш код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2010, 17:34 |
|
Как считать данные с веб страницы
|
|||
---|---|---|---|
#18+
Спасибо. Конечно же этому куску предшествует такой If ThisWorkbook.Sheets(1).Cells(1, 1) <> "" Then tempStr = ThisWorkbook.Sheets(1).Cells(1, 1) Set IE = CreateObject("InternetExplorer.Application") IE.Navigate2 tempStr Else Exit Sub End If ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2010, 11:42 |
|
Как считать данные с веб страницы
|
|||
---|---|---|---|
#18+
Почему Код: plaintext
А не Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2010, 12:18 |
|
Как считать данные с веб страницы
|
|||
---|---|---|---|
#18+
Исключительно потому, что я не силен в этой части и пытался написать это все на основе схожих примеров. А где можно почитать про разницу? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2010, 12:28 |
|
Как считать данные с веб страницы
|
|||
---|---|---|---|
#18+
А где можно почитать про разницу? IHTMLTable — интерфейс, содержащий свойства и методы характерные только для таблицы, HTMLTable — класс, реализующий интерфейс IHTMLTable, IHTMLElement и еще несколько интерфейсов. Переменная, объявленная как IHTMLTable сможет работать только со свойствами этого интерфейса, то есть например свойство style, принадлежащее IHTMLElement, будет недоступно. Однако работа с интерфейсной переменной будет происходить быстрее. Переменные интерфейсного типа не могут быть объявлены WithEvents — у интерфейсов нет событий. Если работа с DOM предстоит масштабная, то лучше по возможности объявлять интерфейсы. Такой комплексный подход хорошо отразится на быстродействии программы и предоставит дополнительный контроль ошибок, например еще на этапе компиляции пресечет обреченную на провал попытку посчитать строки у div. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2010, 14:57 |
|
|
start [/forum/topic.php?fid=60&msg=37040974&tid=2159110]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 330ms |
total: | 458ms |
0 / 0 |