Страницы: 1
RSS
Скачивание файлов с защищённых узлов Инета
 
Есть корпоративный портал, доступ на который осуществляется с использованием сертификата безопасности. Заходя туда через браузер, я могу выгрузить нужные мне файлы по-одному, а мне бы хотелось выгружать их массово.  
Есть множество примеров загрузчиков файлов из инета, но с защищёнными узлами они не работают.  
Уважаемые коллеги, может кто-нибудь сталкивался с подобной задачей?  
Я так понимаю, что проблема кроется именно в сертификате безопасности. Можно ли что-нибудь прописать в макросе, чтобы допустим эксель обращался к сайту по определённому порту или протоколу? Или может подгрузить какую-нибудь библиотеку?  
 
Примеров выложить не могу, но готов проверить любые идеи.  
 
Спасибо.
 
> Есть множество примеров загрузчиков файлов из инета, но с защищёнными узлами они не работают.  
 
Странно - вроде как всё работает.  
Набрал слово https в поиске по форуму - сразу нашёл пример:  
http://www.planetaexcel.ru/forum.php?thread_id=15673  
 
Код заведомо рабочий - я использую его для выгрузки данных из биллинговой системы.  
 
Номер порта можно указать в строке адреса сайта.  
Для разных протоколов - разные решения.  
Можно и библиотеки использовать - я использую решения (ActiveX-компоненты) от chilkat: (например, при работе через SSH из VBA)  
http://www.chilkatsoft.com/default.asp  
 
PS: Без примера ничего конкретного посоветовать не получится.
 
{quote}{login=EducatedFool}{date=09.12.2010 12:10}{thema=}{post}> Есть множество примеров загрузчиков файлов из инета, но с защищёнными узлами они не работают.  
 
Странно - вроде как всё работает.  
Набрал слово https в поиске по форуму - сразу нашёл пример:  
http://www.planetaexcel.ru/forum.php?thread_id=15673  
 
Код заведомо рабочий - я использую его для выгрузки данных из биллинговой системы.  
 
Номер порта можно указать в строке адреса сайта.  
Для разных протоколов - разные решения.  
Можно и библиотеки использовать - я использую решения (ActiveX-компоненты) от chilkat: (например, при работе через SSH из VBA)  
http://www.chilkatsoft.com/default.asp  
 
PS: Без примера ничего конкретного посоветовать не получится.{/post}{/quote}  
 
ну пример к сожалению дать не могу...авторизация на сайте происходит без всяких скриптов и всплывающих окон...просто логин и пароль вбиваются в поля,  
протокол https...  
посмотрел коды по ссылке...там описаны разные процессы авторизации на сайтах с использованием инет эксплорера...я просто пока не совсем понимаю как мне это использовать...  
авторизоваться я в принципе могу и вручную...или надо авторизовываться именно программно перед скачиванием каждого файла?  
просто хотелось бы понять принцип...
 
попробовал этот код  
NavStr = "https://адрес сайта"  
IE.Navigate NavStr  
While IE.busy Or (IE.readyState <> 4): DoEvents: Wend  
 
Set ieDoc = IE.Document  
If ieDoc.Title Like "Ошибка сертификата*" Or ieDoc.Title Like "Certificate Error*" Then  
ieDoc.Links(1).Click  
While IE.busy Or (IE.readyState <> 4): DoEvents: Wend  
Set ieDoc = IE.Document  
End If  
 
With ieDoc  
.all("user").Value = "логин"  
.all("password").Value = "пароль"  
.all("Submit").Click  
For i = 1 To 1000: DoEvents: Next  
While IE.busy Or (IE.readyState <> 4): DoEvents: Wend  
End With  
 
вот на эту строчку ".all("user").Value" он у меня ругнулся
 
Названия полей на каждом сайте - свои.  
Откройте в браузере исходный код страницы, и посмотрите названия полей.  
 
К примеру, в вашем случае код может выглядеть так:  
...  
.all("login").Value = "логин"  
.all("pass").Value = "пароль"  
.all(23).Click  
...  
 
Названий у полей может и не быть - в этом случае придётся использовать индекс элемента, или же другие способы.  
Есть ещё множество нюансов
 
{quote}{login=EducatedFool}{date=11.12.2010 12:01}{thema=}{post}Названия полей на каждом сайте - свои.  
Откройте в браузере исходный код страницы, и посмотрите названия полей.  
 
К примеру, в вашем случае код может выглядеть так:  
...  
.all("login").Value = "логин"  
.all("pass").Value = "пароль"  
.all(23).Click  
...  
 
Названий у полей может и не быть - в этом случае придётся использовать индекс элемента, или же другие способы.  
Есть ещё множество нюансов{/post}{/quote}  
 
с авторизацией разобрался, пробую скачать *.xml файл Вашим методом с использованием API функции, но почему-то пока не получилось у меня это сделать...причём если я этот файл открываю макросом, то он открывается, но если пытаюсь скачать, то не получается...причём когда присваиваю значение данной функции какой-либо переменной, то возвращается значение ИСТИНА, хотя файла на диске нет...
 
Всё...заработало...стоял запрет на запись в ту папку...  
спасибо за помощь :)
 
ещё вопрос такой возник...как избавиться от окна браузера?
 
ну так как? если просто в свойствах не выводить этот объект, то и авторизации не происходит...
 
пробовал...не работает...
 
ещё варианты?
 
кто-нибудь?
 
{quote}{login=Ezoptron}{date=21.12.2010 08:26}{thema=}{post}кто-нибудь?{/post}{/quote}  
 
Кто-нибудь что?  
Чего вы ждёте на форуме по Excel? Вам на форум телепатов надо...  
 
Вы же сказали, что всё заработало (в плане доступа к загадочной защищённой странице)  
А как убрать окно браузера, которое фиг знает как выводится (мы же код ваш не видели) - вряд ли вам кто подскажет, ибо тут надо уметь читать мысли.  
 
Всё очень просто.  
Будет пример - будет решение.  
Нет примера - нет решения.
 
{quote}{login=EducatedFool}{date=21.12.2010 09:23}{thema=Re: }{post}{quote}{login=Ezoptron}{date=21.12.2010 08:26}{thema=}{post}кто-нибудь?{/post}{/quote}  
 
Кто-нибудь что?  
Чего вы ждёте на форуме по Excel? Вам на форум телепатов надо...  
 
Вы же сказали, что всё заработало (в плане доступа к загадочной защищённой странице)  
А как убрать окно браузера, которое фиг знает как выводится (мы же код ваш не видели) - вряд ли вам кто подскажет, ибо тут надо уметь читать мысли.  
 
Всё очень просто.  
Будет пример - будет решение.  
Нет примера - нет решения.{/post}{/quote}  
 
EducatedFool, код Ваш...правда немного переделанный...как в Вашем примере убрать из формы окно браузера? Если в свойствах ставлю его невидимость, то происходит затык на While IE.busy Or (IE.readyState <> 4): DoEvents: Wend...
 
А кто вам сказал, что вообще нужна форма с браузером???  
 
У меня этот код работает без всяких форм - они тут ни к чему.  
 
В обычном макросе создаём объект:  
 
   Set IE = CreateObject("InternetExplorer.Application"): DoEvents  
 
и сразу же делаем его невидимым:  
 
   IE.Visible = FALSE  
Далее работаем с этим объектом.  
 
В конце макроса - закрываем приложение:  
 
   IE.Quit  
   Set IE = Nothing  
 
Вот и всё - ничего не видно, но всё работает.  
 
И никаких затыков на While IE.busy Or (IE.readyState <> 4): DoEvents: Wend  
у меня не наблюдается.
 
Спасибо...всё заработало...
Страницы: 1
Читают тему
Наверх