Прошу помощи, нужно скачать pdf файл с сайта по ссылке.
Вроде кучу тем на эту тему, но уже десятки кодов испробовал и толку ноль.... Не помогает и URLDownloadToFile и GetHTTPResponse пробовал вытащить.... Находил код открытия через интернетЭкспловер и эмуляция "Сохранить", но нет...
Павел Баскаков, добрый день! В этой теме про скачивание с этого сайта pdf файла, правда там скачивается информация по организации по ИНН. Мне в свое время этот макрос (который из второго сообщения в теме) помог при скачивании с этого сайта, может и Вы подчерпнете что-то. upd. А ну хотя сайт-то другой но, думаю, принцип скачивания pdf такой же будет.
написал: Павел Баскаков, добрый день! В этой теме про скачивание с этого сайта pdf файла, правда там скачивается информация по организации по ИНН. Мне в свое время этот макрос (который из второго сообщения в теме) помог при скачивании с этого сайта, может и Вы подчерпнете что-то. upd. А ну хотя сайт-то другой но, думаю, принцип скачивания pdf такой же будет.
Спасибо за ссылку!
Там чуть чуть другой принцип - по нажатию на кнопку происходит скачивание. У меня же именно открывается в браузере как документ - и вот потом надо скачать. Думал ерунда- легко будет, но нет)))
sokol92, Интересный подход! В VBA я так понимаю через shell запускается. Пробую просто через командную строку запустить выдаёт curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - Функция отзыва не смогла произвести проверку отзыва для сертификата.
Всё, нашёл что было не так. Чуть чуть допилил напильником и заработало! Нужно отключить сертификат. Спасибо за отличный способ, а то голову сломал уже)
Function Url2File(sUrlFile As String, sPathName As String, Optional sLogin As String, Optional sPassword As String) As Boolean
'ZVI:2022-10-16 https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&TID=152767
Dim FN As Integer
On Error GoTo exit_
If Dir(sPathName) <> "" Then Kill sPathName
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", sUrlFile, False, sLogin, sPassword
.send
If .Status <> 200 Then Exit Function
FN = FreeFile
Open sPathName For Binary Access Write As #FN
Put #FN, , .responseBody
exit_:
If FN Then Close #FN
Url2File = .Status = 200
End With
End Function
Sub PdfFromUrl()
Dim sUrl As String, sFileName As String
Dim sId As String, sPeriod As String
' Build sUrl
sId = "11175198"
sPeriod = "2020"
sUrl = "https://bo.nalog.ru/download/bfo/pdf/" & sId & "?period=" & sPeriod
' Build FileName: 11175198-2020.pdf
sFileName = ThisWorkbook.Path & "\" & sId & "-" & sPeriod & ".pdf"
' Download & Show result
If Url2File(sUrl, sFileName) Then
MsgBox "Downloaded file:" & vbLf & sFileName, vbInformation, "Success"
Else
MsgBox "Can't download from" & vbLf & sUrl, vbCritical, "Error"
End If
End Sub