Страница: 1 |
Страница: 1 |
Вопрос: Работа с интернетом
Добавлено: 11.05.07 11:44
Автор вопроса:
george | ICQ: 301137589
Народ, возникла проблема: http://pif.investfunds.ru/quotes/index.phtml
на этом сайте нужно скачивать информацию постоянно по всем фондам автоматизировано через excel (vba). Однако проблема: там все написано на яве. Соответственно, когда я выбираю тот или иной фонд, у меня страница не меняется. Что делать? Заранее благодарен всем.
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа: HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 11.05.07 17:47
Загрузить страницу в WebBrowser, и получать значения элементов через объектную модель WB
Номер ответа: 2
Автор ответа: george
ICQ: 301137589
Вопросов: 18
Ответов: 31
Профиль | | #2
Добавлено: 16.05.07 16:09
если не затруднит, то можно пример кода продемонстрировать
Номер ответа: 3
Автор ответа: HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 16.05.07 23:43
(c) - я
' * Заполнение любых элементов на странице, в любой форме, на любом фрейме
' (Работа с элементами)
' WB - Объект WebBrowser
' sFrame - Имя (или индекс) фрейма в котором заполняем поля (vbNullString если нет фрейма)
' sFormName - Имя (или индекс) формы в которой заполняем поля
' pv - Массив структур полей и их значений
' Submit - отправлять ли форму полсе заполнения (По умолчанию False)
Public Sub SubmitForm(WB As WebBrowser, sFrame As String, sFormName, pv() As PostVar, Optional Submit As Boolean = False)
On Error GoTo e
Dim i As Byte
Dim From, obj, o
Call Sleep(200&
ClearError
If Trim$(sFormName) = "" Then sFormName = "#1"
DoEvents: DoEvents
Call Sleep(200&
'Устанавливаем Document у страницы
If Trim$(sFrame) = "" Then 'Если фрейма нет, Document наследуется от WB
Set o = WB.Document
Else 'Если есть...
'Проверяем имя или индекс указан в качестве фрейма
If InStr(1, sFrame, "#", 1) > 0 Then 'Если индекс
Set o = WB.Document.frames(Val(Replace(sFrame, "#", "")).Document 'Наследуем Document по индексу фрейма
Else 'Если имя
Set o = WB.Document.frames.Item(CStr(sFrame)).Document 'Наследуем Document по имени фрейма
End If
End If
'Dcoument фрейма (или без него) на этом этапе определён
'Определяем форму, наследуя объекст o (Он является Document)
If InStr(1, sFormName, "#", 1) > 0 Then
Set From = o.Forms(Val(Replace(sFormName, "#", ""))
Else
Set From = o.Forms.Item(CStr(sFormName))
End If
'Заполняем элементы в определённом фрейме и форме
For i = LBound(pv) To UBound(pv)
If Trim$(pv(i).sPole) <> "" Then
Set obj = From.elements.Item(CStr(pv(i).sPole))
obj.Value = pv(i).sVal
End If
Next i
Call Sleep(100&
If Submit Then From.Submit 'Сабмитим форму
Call Sleep(100&
Exit Sub
e:
LastErrorDescription = Err.Description
LastErrorNumber = Err.Number
End Sub
'========================================================================
Это заполнение, чтение аналогично