Я пытаюсь автоматически загружать PDF-файлы через VBA, мне уже удалось автоматически перейти на многие URL-адреса и извлечь текст из html с помощью метода CSS Selector querySelectorAll()
и сохранить его в моей электронной таблице Excel через VBA.
Я также могу нажимать кнопки javascript и вообще знаю, как загружать файлы PDF, но, похоже, он не работает с файлами PDF с веб-сайта, над которым я работаю. Похоже, что файлы PDF не существуют на серверах, а существуют только как BLOB (например, blob: null / 7cea2352-704e-42e2-9da7-2b65082134bb) и конвертируются в PDF на лету через некоторый код JavaScript, когда я нажимаю вручную на кнопке «скачать PDF» во встроенном окне предварительного просмотра PDF Firefox.
Есть ли способ получить доступ к этим BLOB-файлам через vba и преобразовать их в файлы, чтобы автоматически загружать их, как обычные PDF-файлы? Я просматривал несколько уроков / отвечал на вопросы, но они так и не показали, как это сделать с помощью vba, но всегда только через javascript.
Мой код (соответствующая часть):
Sub vbaCrawler()
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "websiteURL.com"
While IE.Busy Or IE.readyState < 4: DoEvents: Wend
t = Timer
counterX = 1
counterY = 1
Do
DoEvents
On Error Resume Next
Set aNodeList = IE.document.querySelectorAll("#productPartSearchResult td")
On Error GoTo 0
If Timer - t = 10 Then Exit Do
Loop While aNodeList Is Nothing
If Not aNodeList Is Nothing Then
For j = 18 To aNodeList.Length - 1
Worksheets("CurrentStep").Cells(counterY, counterX).Value = aNodeList.Item(j).innerText
If counterX < 9 Then
counterX = counterX + 1
Else
counterX = 1
counterY = counterY + 1
End If
Next j
End If
//[...] bunch of code to format the text data
IE.Quit
Set IE = Nothing
End Sub
Я мог бы указать Excel на холст, содержащий файл BLOB, но я не знаю, как оттуда понять, чтобы Excel понял, что этот холст на самом деле содержит файл, который следует загрузить:
(Снимок экрана) большая белая картинка - это BLOB / PDF, который я пытаюсь загрузить, соответствующий холст помечен синим цветом с правой стороны
Вот скриншот, показывающий, что произойдет, если я щелкну правой кнопкой мыши изображение, которое пытаюсь загрузить, чтобы просмотреть его в браузере:
URL-адрес снимка экрана blob
Я надеялся на URL пути к файлу, чтобы я мог загрузить это изображение, но он просто показывает URL-адрес BLOB-объекта без какого-либо расширения .png или .pdf, что затрудняет мне работу с ним. Как я могу загрузить этот файл, если он не показывает путь к файлу, а только этот URL-адрес большого двоичного объекта?
И как я могу получить этот URL-адрес BLOB-объекта через VBA? сейчас я знаю, как добраться до него вручную, щелкнув правой кнопкой мыши изображение, но не могу найти URL-адрес большого двоичного объекта в исходном коде html.