Страницы: 1
RSS
Массовое скачивание XLS файлов с сервиса dadata
 
Добрый день!
Прошу помочь в решении моей задачи.
У меня есть около 10 тысяч ссылок с названиями населенных пунктов московской и ленинградской областей. При переходе по каждой ссылке генерируется XML файл.
Необходимо перейти по каждой ссылке и скачать XML файл, у меня увы, не хватает знаний. Облегченный файл во вложении.
По возможности прошу определить папку для скачивания XML файлов в c:\Temp
Пример сссылки:
https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address?token=ca7356669e876db6d8091f49588068c19350b57&query=Моковская%20область г.%20Волоколамск
Изменено: Strizh - 18.02.2020 09:20:05
 
PS
Ошибся в названии темы, уважаемый модератор, прошу изменить тему на:
Массовое скачивание XML файлов с сервиса dadata
 
Добрый.

Вам нужны:
цикл по ячейкам
функция типа WinHttpRequest с методом GET
функция сохранения данных из переменной в файл

Все это есть на форуме, пробуйте. Что-то не получится - пишите, с приведением кода в теме.
 
Как скачать файл из интернета по ссылке
там все есть, под свой файл подстроить останется.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо за информацию!
 
Код
Sub XML_Export()
Dim XMLHTTP As Object
Dim ADOStream As Object
Dim URL$, EnCoded$, FileName$
FileName = "Моковска­я область г. Волоколамск" 'Искомый адрес
URL = "https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address?token=ca7356669e8a76db6d8091f49588068c19350b57&query="
EnCoded = WorksheetFunction.EncodeURL(FileName)
Set XMLHTTP = CreateObject("MSXML2.XMLHTTP")
XMLHTTP.Open "GET", URL & EnCoded, "False"
XMLHTTP.send
If XMLHTTP.Status = 200 Then
    Set ADOStream = CreateObject("ADODB.Stream")
    ADOStream.Type = 1
    ADOStream.Open
    ADOStream.Write XMLHTTP.responseBody
    ADOStream.SaveToFile Environ$("temp") & "\" & FileName & ".xml", 2
    ADOStream.Close
    Set ADOStream = Nothing
Else
    MsgBox "Отсутствует соединение..."
    Set XMLHTTP = Nothing
    Exit Sub
End If
Set XMLHTTP = Nothing
If MsgBox("Сохранил файл в папку TEMP." & vbNewLine & "Открыть папку?", vbQuestion + vbYesNo, "ALEMOX") = vbYes Then
    Shell "explorer.exe " & Environ$("temp"), vbNormalFocus
End If
End Sub
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
Страницы: 1
Наверх