Страницы: 1
RSS
Автоматизировать выгрузку данных с сайта
 
Добрый день,

подскажите, пожалуйста, как сделать автоматизированную выгрузку с сайта?
В данном случае с этого http://www.finam.ru/analysis/profile253AC00007/?market=14
Т.е. там можно вручную выставив определенные параметры получить выгрузку котировок за выбранный период с определнными параметрами (какие именно данные выгружать, по какому фин.инструменту и т.д.)

На данный момент данные выгружаются вручную, хотелось бы процесс этот автоматизировать.
Основное это именно макрос с выгрузкой - красивость (менюшку с вводом данных по определенным параметрам) я думаю наведу уже самостоятельно.

Пытался сделать это через веб-запрос, описанный здесь http://www.planetaexcel.ru/techniques/13/129/ (вариант 2).
Но там результат не таблица, которую нужно получить, а файл отдельный.

В конечно результате что хочется получить:
1) открыли файл
2) запустили макрос -> ввели необходимые параметры (какие и сколько инструментов и с какими параметрами)
3) макрос выгрузил файлы с данными и сохранил их куда-то
4) этот же макрос собрал данные из файлов и поместил их в первоначальный файл
Повторюсь - основное это получить выгрузку, а остальные моменты уже проще и самостоятельно запилю.

Заранее спасибо
Изменено: shy_guy - 09.11.2015 09:39:48
 
Цитата
shy_guy написал: Но там результат не таблица, которую нужно получить, а файл отдельный.
что мешает циклом загрузить несколько файлов? (For...Next)
затем, чтобы получить таблицу, собранную из них, - надо открыть их (или др способом) поочерёдно опять же циклом и свести воедино, как нравится...
-------------------
а вообще, с такой постановкой вопроса я бы посоветовала вам другой раздел... - потому что вы сами не тратите время, - попыток нет, конкретных вопросов нет, только голое ТехЗадание... (не вникала в структуру вашего сайта) но вам скорее подойдёт Function DownloadFile - т.е. ничего нового, надо, полагаю, адаптировать под вашу задачу... "путь осилит идущий"  ;)
Изменено: JeyCi - 06.11.2015 21:15:38
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi написал:  я бы посоветовала вам другой раздел... -
Можно и готовое решение приобрести.
Краткое видео в формате ехе.
 
Цитата
JeyCi написал: что мешает циклом загрузить несколько файлов? (For...Next)
Проблема только в одном - как загрузить?
Силами макроса.

Все остальное я постараюсь сделать самостоятельно.
Вопрос только в загрузке файла.
Веб-запрос из примера не работает - как я понял, он расчитан именно на получение текста/таблиц, которые получаются через запрос.
А файл таким образом никуда не грузится.
 
Вроде нашел, но еще не проверял

Код
Sub DownloadFile(url As String, filePath As String, _
                 Optional isBinaryData As Boolean, _
                 Optional overWriteFile As Boolean, _
                 Optional attempts As Integer)
    Dim WinHttpReq As Object
    If IsMissing(attempts) Or attempts <= 0 Then
        attempts = 1
    End If
    On Error GoTo TryAgain
TryAgain:
    attempts = attempts - 1
    Err.Clear
    If attempts > 0 Then
        Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
        WinHttpReq.Open "GET", url, False
        WinHttpReq.send
        If WinHttpReq.Status = 200 Then
            Set oStream = CreateObject("ADODB.Stream")
            oStream.Open
            'type of data: 1 - binary data, 2 - default, text data
            oStream.Type = IIf(isBinaryData, 1, 2)
            oStream.Write WinHttpReq.responseBody
            'overwrite: 1 = no overwrite, 2 = overwrite
            oStream.SaveToFile filePath, IIf(overWriteFile, 2, 1)
            oStream.Close
        End If
    End If
End Sub
Изменено: shy_guy - 11.11.2015 10:16:58
Страницы: 1
Читают тему
Наверх