Страницы: 1
RSS
Получение результата web-запроса на лист Excel
 
Добрый день, уважаемые форумчане

Интересует вопрос возможно ли в принципе из VBA
1. создать запрос к ресурсу http://www.uz.gov.ua/cargo_transportation/electronic_transportation/specificat­ions_carriages_info/ (в поле номера вагонов вставить № вагона, например - 62111018)
2. эмулировать нажатие кнопки "получить информацию"
3. полученную информацию забрать на лист Excel

Почему спрашиваю возможно ли в принципе  - потому что при использовании штатных средств Excel (Данные - Из интернета) вообще не увидел информации в нужных полях,  я так понимаю есть "нюансы" некоторых сайтов при которых Excel их "не видит"?

Заранее спасибо    
 
Да, возможно.
Только при помощи макросов (POST-запрос к сайту), а не штатными средствами (типа Данные - Из интернета)
 
Игорь, спасибо буду "копать" :)
 
Уважаемые форумчане,
прошу указать на ошибки макроса написаного для решения задачи указаной темы:
Код
Sub getinfo()
Dim XMLHTTP As MSXML2.XMLHTTP
ActiveSheet.[a1].ClearContents
Set XMLHTTP = New MSXML2.XMLHTTP
    XMLHTTP.Open "POST", "http://www.uz.gov.ua/cargo_transportation/electronic_transportation/specifications_carriages_info/", "false"
    XMLHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    XMLHTTP.SetRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
    XMLHTTP.SetRequestHeader "Referer", "http://www.uz.gov.ua/car_info/index.php"
    XMLHTTP.SetRequestHeader "Accept-Language", "uk-UA,uk;q=0.8,ru;q=0.6,en-US;q=0.4,en;q=0.2"
    XMLHTTP.SetRequestHeader "Accept-Encoding", "gzip, deflate, lzma"
    XMLHTTP.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36 OPR/31.0.1889.174"
    XMLHTTP.SetRequestHeader "Host", "www.uz.gov.ua"
    XMLHTTP.SetRequestHeader "Content-Length", "27"
    XMLHTTP.SetRequestHeader "Origin", "http://www.uz.gov.ua"
    XMLHTTP.SetRequestHeader "Upgrade-Insecure-Requests", "1"
    XMLHTTP.SetRequestHeader "DNT", "1"
    XMLHTTP.SetRequestHeader "Connection", "Keep-Alive"
    XMLHTTP.SetRequestHeader "Cache-Control", "max-age=0"
    XMLHTTP.Send ("p_NV=58930330")
    Do While XMLHTTP.readyState <> 4
    DoEvents
    Loop
    ActiveSheet.[a1] = XMLHTTP.ResponseText
    Set XMLHTTP = Nothing
End Sub
результат отработки макроса можна посмотреть в файле-примере
Подскажите, пожалуйста, что не так делаю  - результатом работы даного макроса
должен быть ответ сервера на запрос с парамметром (№ вагона), а именно разрешение или запрет
выезда вагона за пределы страны (так и происходит если парамметр ввести на сайт через браузер),
но как добитсься того же эффекта при помощи VBA?
Прилагаю к данному сообщению заголовки запроса (рис.1)
рисунок удален: превышение допустимого размера вложения [МОДЕРАТОР]

 
 
Вы просто не умеете готовить запросы :)
Так рулит?
Скрытый текст

Внес изменения
Изменено: Doober - 31.08.2015 15:25:06
 
Цитата
Doober написал: Вы просто не умеете готовить запросы  
100% )
мало того что Вы сделали корректный запрос так еще и
распарсили регулярками!!!
Большое спасибо
Ушел учиться  :)
 
Решил попробовать код у себя, Excel начал ругаться
 
установка библиотеки Microsoft XML 3.0 частично помогла, но теперь новое "но", дебагер указывает на строчку с XMLHTTP.Send ("p_NV=58930330")
Изменено: Алексей Шебаниц - 04.02.2020 14:17:30
 
Переходите на объект WinHttpRequest. Используемый Вами код был написан в 2015 году.
Изменено: sokol92 - 04.02.2020 14:32:48
Владимир
 
Не в этом дело.
надо  http: заменить на  https:
 
Цитата
doober написал:
Не в этом дело.надо  http: заменить на  https:

Сработало)
Страницы: 1
Наверх