Во вложении класс и пример работы с ним!
Очень много времени трачу именно на загрузку страниц и т.д. сейчас активно читаю MSDN и забугорные форму и как это реализуется на других языках, cURL и т.д. ищу альтернативу особенно ИНДУССКОМУ IE (ой как они его любят же).
В общем случае мы используем один из этих объектов и получаем ответы от сервера так:
Если кто сталкивался или знает XMLHttp.Send действительно отправляет и ждет ответа или может только отправить и не ждать или он и так только отправляет
какие еще есть варианты?
По сути в общем смысле идея следующая:
1)сделать или массив или несколько объектов через рекурсию, любого из перечисленных выше или может даже IE
2)создали, отправили сайт на загрузку, проверили загрузился или нет 1 раз, если нет:
2.1)создали, отправили сайт на загрузку, проверили загрузился или нет ПЕРВЫЙ САЙТ, потом наш, если нет:
2.n)создали, отправили сайт на загрузку, проверили загрузился или нет ПЕРВЫЙ САЙТ, если да - забрали данные, убили обьект, проверили следующий, до n
Реально ли так сделать? - пока еще думаю на счет реализации и преимущества в скорости.
Пока по сравнению всех выше перечисленных объектов WinHttp.WinHttpRequest.5.1 - работает дольше всех в 2.5 раза, но грузит все сайты (и китайские) с любого URL, у него есть TimeAut, если сильно долго грузится и т.д., в теории есть и
но пока я не вычитал как им пользоваться и можно ли на VBA.
Во вложении класс и пример работы с ним!
Очень много времени трачу именно на загрузку страниц и т.д. сейчас активно читаю MSDN и забугорные форму и как это реализуется на других языках, cURL и т.д. ищу альтернативу особенно ИНДУССКОМУ IE (ой как они его любят же).
В общем случае мы используем один из этих объектов и получаем ответы от сервера так:
| Код |
|---|
'Dim XMLHttp As Object: Set XMLHttp = CreateObject("Microsoft.XMLHTTP")
'Dim XMLHttp As Object: Set XMLHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
'Dim XMLHttp As Object: Set XMLHttp = CreateObject("MSXML2.ServerXMLHTTP")
'Dim XMLHttp As Object: Set XMLHttp = CreateObject("MSXML2.XMLHttp") '
'Dim XMLHttp As Object: Set XMLHttp = New WinHttpRequest
XMLHttp.Open "GET", "site.com", False 'OR "POST" type and True for redirect
'XMLHttp.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
'XMLHttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
'XMLHttp.SetRequestHeader "Cache-Control", "no-store, no-cache"
'XMLHttp.SetRequestHeader "Pragma", "no-cache"
'XMLHttp.Send StrConv("title=Title&cat=Cat&post=PostText&pas=tipapass", vbFromUnicode)
XMLHttp.Send '"title=Title&cat=Cat&post=PostText&pas=tipapass" << тут дольше всего висит
Debug.Print XMLHttp.ResponseText
Set XMLHttp = Nothing
|
какие еще есть варианты?
По сути в общем смысле идея следующая:
1)сделать или массив или несколько объектов через рекурсию, любого из перечисленных выше или может даже IE
2)создали, отправили сайт на загрузку, проверили загрузился или нет 1 раз, если нет:
2.1)создали, отправили сайт на загрузку, проверили загрузился или нет ПЕРВЫЙ САЙТ, потом наш, если нет:
2.n)создали, отправили сайт на загрузку, проверили загрузился или нет ПЕРВЫЙ САЙТ, если да - забрали данные, убили обьект, проверили следующий, до n
Реально ли так сделать? - пока еще думаю на счет реализации и преимущества в скорости.
Пока по сравнению всех выше перечисленных объектов WinHttp.WinHttpRequest.5.1 - работает дольше всех в 2.5 раза, но грузит все сайты (и китайские) с любого URL, у него есть TimeAut, если сильно долго грузится и т.д., в теории есть и
| Цитата | ||
|---|---|---|
|
Во вложении класс и пример работы с ним!
Изменено: - 22.10.2014 11:16:16
(Первая часть ответа - готова)
Автоматизация приложений, разработка ботов, парсинг сайтов, поиск информации и многое другое на языках : Delphi, C++, VBA. Информация в профиле.
