Создание веб-запроса в макросе.

Программирование на Visual Basic for Applications
ar4ie
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 23.10.2006 (Пн) 8:37

Создание веб-запроса в макросе.

Сообщение ar4ie » 23.10.2006 (Пн) 8:49

Здравствуйте.

Скажите пожалуйста, можно ли в макросе сделать цикл, в котором создавался бы веб-запрос (типа http://www.сайт.ru/play.pl?2006020231006), возвращались данные по запросу, затем менялась бы числовая часть запроса и снова получение данных... и т.д. Нужно получать много данных, в запросах меняются только цифры. Возможно автоматизировать такой процесс получения данных?
Спасибо.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 23.10.2006 (Пн) 10:17

Да. XMLHTTP идеально для этого подходит.
Лучший способ понять что-то самому — объяснить это другому.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 23.10.2006 (Пн) 12:33

[offtop]Если это будет использоваться для того чтобы разорить очередную рулетку (а есть такое подозрение), то стоит затею сразу прекратить. Как правило "доморощенные" теории вероятностей против рулетки бессильны[/offtop]

ar4ie
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 23.10.2006 (Пн) 8:37

Сообщение ar4ie » 23.10.2006 (Пн) 13:14

GAGArin писал(а):[offtop]Если это будет использоваться для того чтобы разорить очередную рулетку (а есть такое подозрение), то стоит затею сразу прекратить. Как правило "доморощенные" теории вероятностей против рулетки бессильны[/offtop]

Нет, речь идет о сборе спортивной статистической информации о проведенных футбольных матчах.

Antonariy писал(а):
Да. XMLHTTP идеально для этого подходит.

А если сторона сервера не выдает данные в формате XML тогда как?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.10.2006 (Пн) 13:16

Тогда Начать запись макроса, веб-запрос в меню Данные, и использовать код.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ar4ie
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 23.10.2006 (Пн) 8:37

Сообщение ar4ie » 23.10.2006 (Пн) 14:18

GSerg писал(а):Тогда Начать запись макроса, веб-запрос в меню Данные, и использовать код.


Вот мне и нужно в коде в цикле изменять часть адреса запроса. Если просто записывать макрос, то адрес запроса не изменить уже потом в коде. Это подходит для одного запроса, а если их сотни? Мне каждый раз новый запрос создавать? :?

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 23.10.2006 (Пн) 16:54

ar4ie писал(а):Если просто записывать макрос, то адрес запроса не изменить уже потом в коде. Это подходит для одного запроса, а если их сотни? Мне каждый раз новый запрос создавать? :?


1) Ты попробовал сделать то, что тебе сказал GSerg?
2) Из чего следует, что "адрес запроса не изменить уже потом в коде"
3) У меня записалось вот это:

Код: Выделить всё
Sub Macro1()
    With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.oanda.com", _
        Destination:=Range("A1"))
        .Name = "www.oanda"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = """crossrate"""
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub


4) Создавай список адресов и имен/номеров таблиц и гоняй по ним с пом. цикла. Сначала QueryTables.Add а потом

Код: Выделить всё
    With Selection.QueryTable
        .Connection = "URL;http://www.google.com"
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = """bigmac"""
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
Привет,
KL

ar4ie
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 23.10.2006 (Пн) 8:37

Сообщение ar4ie » 24.10.2006 (Вт) 9:24

ОК. Спасибо всем, буду пробовать.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 91

    TopList