Как скачать файл с сайта (downloader) без открытия и сохранить его в нужной папке без возникновения меню "открыть/сохранить"
Нагуглить по форуму и вне по этому вопросу не удалось
Нагуглить по форуму и вне по этому вопросу не удалось
04.01.2010 18:13:59
Как скачать файл с сайта (downloader) без открытия и сохранить его в нужной папке без возникновения меню "открыть/сохранить"
Нагуглить по форуму и вне по этому вопросу не удалось |
|
|
|
05.01.2010 01:39:20
Все делается очень просто при использовании API-функции URLDownloadToFile
Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long Function DownLoadFile(FromPathName As String, ToPathName As String) As Boolean DownLoadFile = URLDownloadToFile(0, FromPathName, ToPathName, 0, 0) = 0 End Function Sub Main() Dim ссылка As String, Filename As String Link = "http://titan-pro.org/titan-pro.org_ДАТА.rar" Filename = Replace(Environ(24), "TEMP=", "") & "\price" ' скачанный прайс найдёте здесь: C:\WINDOWS\TEMP\price On Error Resume Next: Kill Filename For d = Now To Now - 30 Step -1 ' за последние 30 дней ссылка = Replace(Link, "ДАТА", Format(d, "d.mm.yy")) Debug.Print "Ищем файл: ", ссылка If DownLoadFile(ссылка, Filename) Then MsgBox "Скачан прайс за " & Format(d, "DD MMMM YYYY") Exit Sub End If Debug.Print "Проверена дата: ", d Next End Sub Подробнее - здесь: |
|
|
|
05.01.2010 16:29:55
{quote}{login=VL55}{date=04.01.2010 06:13}{thema=Как скачатьть файл из интернета с помощью VBA?}{post}Нагуглить по форуму и вне по этому вопросу не удалось{/post}{/quote} Странно, у меня нашлось: |
|
|
|
14.01.2010 11:21:01
Огромное спасибо за помощь.
|
|
|
|
14.01.2010 21:17:03
{quote}{login=Юрий М
Странно, у меня нашлось: И что вы думаете, предложенный по ссылке метод на пробе работал хорошо, но только я его зарядил на скачку 4-х файлов мой антивирус начал ругатся (типа обноружен Троян-доунлодер) и утащил файл с кодом на карантин ))) |
|
|
|
14.01.2010 21:51:13
Дык, не виноват я :-) Вопрос к автору макроса или к антивирусу :-))
|
|
|
|
18.01.2010 15:26:46
Вы бы лучше дали ссылку на сайт, и сказали, что именно оттуда надо скачать, и что потом сделать со скачанным... Как использовать буфер обмена - можно почитать здесь: |
|
|
|
18.01.2010 15:46:04
Страничка
Я почитал выши сылки и сдаётся мне что самым надёжным вариантом будет если юзеры будут вручную открывать нужную страницу и копировать её. |
|
|
|
18.01.2010 16:20:50
> самым надёжным вариантом будет если юзеры будут вручную открывать нужную страницу и копировать её.
Поверьте, это не самый надежный вариант. К тому же, разные браузеры по-разному копируют таблицы в буфер обмена - приходится анализировать, какой из браузеров был использован, и запускать соответствующий макрос обработки. По поводу Вашего сайта: Достаточно в цикле загрузить 10 страниц с адресами типа (где вместо page=1 подставлять page=2, page=3 и т.д.) Если Вам надо получить в Excel таблицу из 6 столбцов такого вида: 1 Invincible_trader:58529 20.03.2009 2500 EUR 1183.77% 0.00% 45.69% то это реально. Сложно, но возможно. |
|
|
|
18.01.2010 16:26:13
К тому же, по каждому ПАММ-счету можно макросом скачать готовый файл Excel.
Пример ссылки для скачивания файла: Короче, алгоритм упрощается: 1) грузим в цикле 10 страниц (см. пост выше) 2) в каждой из них находим по 50 ссылок на ПАММ-счета 3) из адресов ссылок (нас интересуют только последние 6 символов из адреса ссылки) формируем ссылки на файлы excel 5) Загружаем в специальную папку все 500 файлов 6) Анализируем их. |
|
|
|
18.01.2010 16:47:39
{quote}{login=EducatedFool}
По поводу Вашего сайта: Достаточно в цикле загрузить 10 страниц с адресами типа (где вместо page=1 подставлять page=2, page=3 и т.д.) ..{/post}{/quote} Я так и делал,но список рейтинга не сохраняется как только не пробовал.И скачивал и веб-запросом,сохраняется вся страница но без списка.Только копированием из експлоера всей страницы в ручную и последующей вставкой на страницу {quote}{login=EducatedFool} Если Вам надо получить в Excel таблицу из 6 столбцов такого вида: 1 Invincible_trader:58529 20.03.2009 2500 EUR 1183.77% 0.00% 45.69% {/post}{/quote} С этим то как раз никаких проблем. Эту часть я уже сделал и она работает. И файлы я уже скачиваю и обрабатываю. {quote}{login=EducatedFool}{date=18.01.2010 04:20}{thema=}{post}> самым надёжным вариантом будет если юзеры будут вручную открывать нужную страницу и копировать её. Поверьте, это не самый надежный вариант. К тому же, разные браузеры по-разному копируют таблицы в буфер обмена - приходится анализировать, какой из браузеров был использован, и запускать соответствующий макрос обработки..{/post}{/quote} Ёлки-палки...Я надеялся что таких проблем не будет. Остаётся только обязать пользователя пользоваться Експлорером и автоматизировать только открытие нужных страниц. Всё равно Експорер стоит у всех по умолчанию хоть и пользуются все кто во что горазд. |
|
|
|
18.01.2010 16:52:29
{post}{quote}{login=EducatedFool}
По поводу Вашего сайта: Достаточно в цикле загрузить 10 страниц с адресами типа (где вместо page=1 подставлять page=2, page=3 и т.д.) {/quote} Я так и делал,но список рейтинга не сохраняется как только не пробовал.И скачивал и веб-запросом,сохраняется вся страница но без списка.Только копированием из експлоера всей страницы в ручную и последующей вставкой на страницу {quote} Если Вам надо получить в Excel таблицу из 6 столбцов такого вида: 1 Invincible_trader:58529 20.03.2009 2500 EUR 1183.77% 0.00% 45.69% {/quote} С этим то как раз никаких проблем. Эту часть я уже сделал и она работает. И файлы я уже скачиваю и обрабатываю. {quote} самым надёжным вариантом будет если юзеры будут вручную открывать нужную страницу и копировать её. Поверьте, это не самый надежный вариант. К тому же, разные браузеры по-разному копируют таблицы в буфер обмена - приходится анализировать, какой из браузеров был использован, и запускать соответствующий макрос обработки..{/quote} Ёлки-палки...Я надеялся что таких проблем не будет. Остаётся только обязать пользователя пользоваться Експлорером и автоматизировать только открытие нужных страниц. Всё равно Експорер стоит у всех по умолчанию хоть и пользуются все кто во что горазд. |
|
|
|
18.01.2010 16:55:39
Откройте Вашу страницу в FireFox (c подключенным расширением Firebug),
и изучите структуру страницы: После этого Вам станет понятно, как с ней работать. Ну и изучите HTML DOM (Document Object Model): |
|
|
|
19.01.2010 15:40:46
{quote}{login=EducatedFool}{date=18.01.2010 04:20}{thema=}{post}>
По поводу Вашего сайта: Достаточно в цикле загрузить 10 страниц с адресами типа (где вместо page=1 подставлять page=2, page=3 и т.д.) .{/post}{/quote} Я понял почему я не мог получить список рейтинга с этой страницы. Браузер (у меня IE6)сообщал что страница загружена, а тем временем список ещё не был свёрстан. Я после .Busy поставил небольшую паузу и список наконец-то удалось заполучить через ExecWB OLECMDID_SELECTALL. А можно ли установить задержку при скачивании страниц через QueryTables ? |
|
|
|
18.07.2010 09:59:23
Подскажите, пожалуйста, как исходный код страницы перенести полностью построчно на лист excel?
|
|
|
|
18.07.2010 11:41:03
Здесь есть пример кода:
|
|
|
|
14.11.2012 19:22:29
Подскажите пожалуйста как перед поиском нужной информации на странице, передать ей параметры и отработать нажатие кнопки?
А конкретно на сайте ( |
||||
|
|
|||