Мне нужна помощь в загрузке файлов с защищенного веб-сайта.У меня нет особых знаний в этой области, поэтому я не уверен, что я могу предоставить, что будет полезно.Если вы можете сказать мне, что взять с веб-сайта, я буду.
Вот основы.Я должен использовать IE.Я использую VBA для отправки автоматизированного кода.Я могу войти на сайт, перейти на страницу их отчетов, запустить свой отчет.Он возвращает таблицу с гиперссылкой, именем и т. Д. Я только на этапе попытки загрузить только один пример, поэтому я знаю, что загрузка работает.Я думаю, что смогу зациклить таблицу и кормить гиперссылки на цикл без проблем.
Когда я загрузил код загрузки своей первой гиперссылкой, я получил свой PDF, но после его открытия это всего лишь сообщение о том, что вы должны войти в систему для просмотра.Ну, я вошел в систему. Он использовал
Call URLDownloadToFile(0, "https://atlasbridge.com/reports/atlasreportdownload.ashx?N=49837661&RT=PREVMAIL", "C:\Users\JCarney\Desktop\DownloadedMail\atlasreportdownload.ashx.pdf", 0, 0)
, затем я попытался:
Dim theURL As String
theURL = "https://atlasbridge.com/reports/atlasreportdownload.ashx? N=49837661&RT=PREVMAIL"
Debug.Print theURL
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", theURL, False, UName, Pword
WinHttpReq.Send
theURL = WinHttpReq.responseBody
If WinHttpReq.Status = 200 Then
Debug.Print theURL
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write WinHttpReq.responseBody oStream.SaveToFile "C:\Users\JCarney\Desktop\DownloadedMail\atlasreportdownload.ashx.pdf", 2 ' 1 = no overwrite, 2 = overwrite
oStream.Close
End If
Результат тот же, PDF-файл загружается, но говорит, что я не вошел в систему. UName,Pword - это строковые переменные, которые ищут имя пользователя и пароль ранее в подпрограмме.Они ищут правильную информацию.Я в растерянности относительно того, куда идти отсюда.Могу ли я сделать так, чтобы vba "щелкала" по гиперссылке, скачивала и называла файл?или я продолжаю пытаться скачать с WinHttpReq.
вот как выглядит HTML таблицы:
'<table align="center" id="ctl00_cphMain_dgMailings" style="border-collapse:collapse;" border="1" rules="all" cellspacing="0">
'<td>Policy</td><td>Insured</td><td>Type</td><td>Mailed</td>
' <tbody><tr class="blacktextbold">
' <td> </td><td>Policy</td><td>Insured</td><td>Type</td><td>Mailed</td>
' </tr><tr class="blacktext">
' </tr><tr class="blacktext" style="background-color:#D9D9D9;">
' <td><a href="../reports/atlasreportdownload.ashx?N=49837661&RT=PREVMAIL" target="_blank">View</a></td><td>1501-1603-1276</td><td>SUSAN</td><td>Amended Dec Page</td><td>12/08/2018</td>
' </tr><tr class="blacktext">href="javascript:__doPostBack('ctl00$cphMain$dgMailings$ctl19$ctl01','')">></a></td>
' </tr>
'</tbody></table>
Какой будет правильно отформатированная гиперссылка, как если бы вы делали это вручную: "https://atlasbridge.com/reports/atlasreportdownload.ashx?N=49837661&RT=PREVMAIL"таблица показывает нам усеченный путь.
Заранее спасибо.
быстрое редактирование. Когда я проверяю элемент, гиперссылка "view" в таблице. Я получаю:
<a href="../reports/atlasreportdownload.ashx?N=49988945&RT=PREVMAIL" target="_blank">View</a>
Если это полезно. Не проливает свет на меня, но, возможно, это полезно. Это текст ответа, если я использую SetCredentials "username", "password" ,, HTTPREQUEST_SETCREDENTIALS_FOR_SERVER для экрана входа в систему веб-сайта веб-страница экрана входа в систему
вот текст ответа, когда я непосредственно нажал на гиперссылку pdf: гиперссылка pdf