Страницы: 1 2 След.
RSS
можно ли макросом скачать файл с депозита?
 
Подскажите, можно макросом скачать файл с депозита?  
Становимся в ячейку с ссылкой(гиперссылкой) на файл, запускаем макрос, он автоматически запускает гиперссылку, потом на страничке выберает СКАЧАТЬ БЕСПЛАТНО, выдерживает паузу 60 сек, жмет кнопку СКАЧАТЬ. В маленьком окошке эксплорера жмет сохранить (папка по умолчанию)...
 
Хороший вопрос :-)
 
Есть готовые программы, например Universal Share Downloader:  
http://www.softportal.com/software-4561-usdownloader.html
 
Не, именно в Excel...
 
Спасибо за ссылку, но весь вопрос и заключается, чтобы это сделать в VBA.  
В плексе есть просмотр курса валют, но код закрыт.  
Думаю задачу можно решить подобным как там методом...но как ??
 
{quote}{login=ГеШа78}{date=27.01.2011 11:08}{thema=}{post}В плексе есть просмотр курса валют, но код закрыт.{/post}{/quote} <BR>В разделе "Приемы" есть пример, но код открыт http://www.planetaexcel.ru/tip.php?aid=91 <BR>Кроме того на Форуме неоднократно обсуждались вопросы открытия сайтов макросами. Не пробовали искать? <BR>А есть ли разница - кликнуть на ссылку в Обозревателе или в Excel? Почему обязательно в Excel?
 
И я про это ;-)
 
{quote}{login=The_Prist}{date=27.01.2011 11:40}{thema=}{post}Думаю, с Депозитом не все так просто. Там ведь есть скачивание Premium(или Gold), а есть для бедных - т.е. бесплатно. В последнем случае надо ждать n-ое кол-во времени. Притом это может быть и час, и два, а не как Вы написали - 60 сек. А можно получить сразу фигу - "С Вашего IP уже идет скачивание...". Все это надо учесть.  
Минута ожидания - это в LetItBit, насколько я помню.{/post}{/quote}  
 
1-интерсует вариант "для бедных"  
2-"С Вашего IP уже идет скачивание..." - этим фактоим пока пренебрегнуть
 
(забыл пожписаться в теме выше..)
 
Я пользуюсь JDownloader. Он после скачивания очередного парта автоматом меняет ip за счет переподключения.  
Но с депозита умеет качать вообще без задержки в 60 сек.
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=28.01.2011 12:54}{thema=}{post}Я пользуюсь JDownloader. Он после скачивания очередного парта автоматом меняет ip за счет переподключения.  
Но с депозита умеет качать вообще без задержки в 60 сек.{/post}{/quote}  
 
у не верю, чт на VBA невозможно повторить то что делает например ваша программа    
JDownloader...  
 
Ладно, может вопросы задовать по мере решения задачи?:  
- как можно макросом нажать кнопку на сайте (открыли его гиперссылкой) ?
 
Sub Макрос2()  
   Range("А1").Select  
   Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True  
End Sub  
 
А1 = http://depositfiles.com/files/h8c5h0n9j
 
Никто не говорит, что невозможно. Эксель при правильном подходе может и борщ сварить. Вопрос зачем, если существуют спецпрограммы написанные именно для этих задач? Можно, например чайником или КАМАЗом гладить белье, но оправдано ли это?
Я сам - дурнее всякого примера! ...
 
ну хоть подскажите как кликнуть макросом по кнопке "скачать бесплатно" на страничке ?
 
неужели никто не поможет?  
или затача тупиковая?
 
{quote}{login=ГеШа78}{date=28.01.2011 07:11}{thema=}{post}ну хоть подскажите как кликнуть макросом по кнопке "скачать бесплатно" на страничке ?{/post}{/quote}  
 
Подскажем, почему бы нет?  
 
Sub deposit()  
   Dim objIE As Object, f  
   Set objIE = CreateObject("InternetExplorer.Application")  
   objIE.Visible = 1  
   objIE.Navigate ("http://depositfiles.com/files/h8c5h0n9j")  
   Do While (objIE.ReadyState <> 4)  
   Loop  
   f = objIE.Document.forms(1).elements(0).Click()  
End Sub  
 
Дальше я думаю вы и сами догадались.
 
Спасибо, начало есть!  
 
Вот что получил пока:  
 
Sub deposit()  
'нужно предварительно открытое окно iExplorera (иначе ошибка)  
Dim stAppName As String  
stAppName = "C:\Program Files\Internet Explorer\iexplore.exe"  
Call Shell(stAppName, 1)  
 
Dim objIE As Object, f  
Set objIE = CreateObject("InternetExplorer.Application")  
objIE.Visible = 1  
objIE.Navigate ("http://depositfiles.com/ru/files/vbhj7yn2b")  
Do While (objIE.ReadyState <> 4)  
Loop  
f = objIE.Document.forms(1).elements(0).Click()  
 
Beep  
   PauseTime = 70  ' время паузы  
   Start = Timer     ' стартуем  
   Do While Timer < Start + PauseTime  
       DoEvents  
   Loop  
Beep  
 
'еще раз жмем, но на новой страничке  
f = objIE.Document.forms(1).elements(0).Click()  
End Sub  
 
Но дальше непонятно, что делать...  
Получаю окно в эксплорере (во вложении)  
Нужно побороть эту блокировку всплывающих окон и сохранить файл C:\Temp и после загрузки закрыть окна эксплорера
 
собственно вложение...
 
У меня все скачалось.  
 
Option Explicit  
#If VBA7 Then  
   #If Win64 Then  
       Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)  
    #Else  
       Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)  
   #End If  
#End If  
 
Sub deposit()  
   Dim objIE As Object, f  
   Set objIE = CreateObject("InternetExplorer.Application")  
   objIE.Visible = 1  
   objIE.Navigate ("http://depositfiles.com/files/h8c5h0n9j")  
   Do While (objIE.ReadyState <> 4)  
   Loop  
   f = objIE.Document.forms(1).elements(0).Click()  
   Sleep 70000  
   f = objIE.Document.forms(1).elements(0).Click()  
Sleep 3000  
objIE.Quit  
End Sub  
 
У меня win7 64 bit. Internet Explorer 8. Файл автоматически передался в Download Master и начал качаться.  
Побороть блокировку можно, настроив IE (уменьшив параметры безопасности). Предварительный запуск IE не нужен. И обновите IE, наконец. )))
 
longines, спасибо!  
но Ваш последний код у меня не срабатывет :(  
Можно развить код который Вы предложили первым.  
Блокировку вспл.окон "пообедил"  
(использовать загрузчики нет возможности, поэтому просьба построить скачку только на функционале IE)  
Как в окошке "Загрузка файла" кликнуть "Сохранить"?  
А потом в следующем окне проводника "Сохранить как" - кликнуть тоже кнопку "Сохранить" ?  
Да и какой командой потом закрыть все окна IE ?
 
здесь окошки в которых неоюходимы клики...
 
Кликать по SaveFile нельзя из-за политики безопасности IE.  
Но можно скачать файл по полученной ссылке:  
URL = CStr(objIE.document.forms(1).Action)  
 
Закрыть эксплорер:  
objIE.Quit  
 
Как скачать файл с помощью VB/VBA можно найти и на этом форуме. Например, используя URLDownloadToFile. Но на мой взгляд удобнее использовать менеджер закачек. Вышенаписанный код отлично работает под Excel 2010 32 bit, на других не проверял.
 
спасибо.  
сейчас попробую..
 
все работает!!!  
единственное пришлось доработать закрытие:  
 
Shell "taskkill.exe /f /im iexplore.exe"  
 
 
longines, поясни как ты определял кнопки на страничке?  
как это применить при скачивании с др. файлообменников, например с летитбита?
 
{quote}{login=ГеШа78}{date=30.01.2011 12:15}{thema=}{post}все работает!!!  
единственное пришлось доработать закрытие:  
 
Shell "taskkill.exe /f /im iexplore.exe"  
 
 
longines, поясни как ты определял кнопки на страничке?  
как это применить при скачивании с др. файлообменников, например с летитбита?{/post}{/quote}  
 
Опять же - необязательно открывать эксплорер через shell. Он открывается и закрывается как объект через Application.  
 
Определял через DOM. Вообще то рекомендую почитать про DOM - полезно при парсинге XML и HTML.
 
блин, чет я не могу разобраться...  
Скачал и установил IEWebDeveloperV2.exe, но ума не приложу как с помощью ее получить номер формы и кнопки с "летит-бит".. :(  
 
f = objIE.document.forms(1).elements(0).Click() - это для депозита  
 
а как это будет выглядеть для летитбитаа???  
1-http://letitbit.net/download/49425.4ca88036ca96804b66b8852cdf87/Basta_ft_Guf-Sootvestvenno_Rip_by_Vladius46_.avi.html - на этой страничке "Скачать на низкой скорости"  
2-а на чледующей "Скачать медленно"  
 
Буду оч. признателен.
 
А почитать про DOM? )))  
Линки можно искать при помощи окна Locals при паузе программы.    
 
f = objIE.Document.forms(3).elements(14).Click()  
Sleep 3000  
f = objIE.Document.forms(3).elements(16).Click()  
Sleep 18000  
f = objIE.Document.forms(0).elements(19).Click()  
Sleep 70000  
f = objIE.Document.link(0).href  
 
Тайм-ауты ставьте свои, в зависимости от скорости интернета.
 
Longines, спасибо!  
Читал, пробовал, но с наскоку такие вещи не пробить.. )  
 
The_Prist, а как код обрашения с именем будет выглядеть ?? (синтаксис)  
А то вдруг еще др. странички понадобятся, а номер пока получить самому никак, во имя проще, но куда его потом "приладнить"?
 
как именем пользоваться разобрался..  
 
f = objIE.Document.forms(3).elements("submit_way_selection2").Click()  
 
 
НО на втором окне код (f = objIE.Document.forms(3).elements(16).Click())  
не попадает на нужную кнопку, пробовал имя, а его у этого объекта НЕТ !?!? Как так?  
 
Трерий код f = objIE.Document.forms(0).elements(19).Click() - попадает на кнопку скачивания ПЛАТНО, и выдает страничку "..не правильно введен код из СМС"  
 
Извиняюсь за дотошность, но как подправить?
 
Со второго окна переход победил  
f = objIE.Document.forms(0).elements(19).Click()  
(методом подбора, но это может на моем IE ?)  
А вот с последней странички никак... :( не получается нащупать кнопку    
"Ссылка на скачивание файла......."  
А код f = objIE.Document.forms(0).elements(19).Click()  
на этой страничке попадает по кнопке рядом с окошком SMS, т.е. "платно"
Страницы: 1 2 След.
Читают тему
Наверх