使用Excel VBA webcrawler将Javascript BLOB从画布下载为PDF

时间:2018-09-15 12:12:33

标签: javascript html excel vba blob

我正在尝试通过VBA自动下载PDF文件,我已经设法自动导航到许多URL,并通过CSS Selector方法querySelectorAll()从html中提取文本,并通过VBA将其保存到我的Excel电子表格中。

我也可以单击javascript按钮,并且我通常知道如何下载PDF文件,但是它似乎不适用于我正在工作的网站上的PDF。看起来PDF文件在服务器上不存在,而仅以BLOB形式存在(例如blob:null / 7cea2352-704e-42e2-9da7-2b65082134bb),并且当我单击时会通过一些JavaScript代码即时转换为PDF在firefox内置PDF预览窗口中的“下载PDF”按钮上手动设置。

是否有一种方法可以通过vba访问这些BLOB文件并将其转换为文件以像普通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理解此画布实际上保存的是应下载的文件:

(Screenshot) the big white picture is the BLOB/PDF I am trying to download, the corresponding canvas is marked blue on the right side

以下是屏幕截图,显示了当我右键单击要下载的图像以在浏览器中查看该图像时会发生的情况:

screenshot image blob url

我希望有一个文件路径URL,以便我可以下载该图像,但是它只是显示不带任何.png或.pdf扩展名的Blob URL,这使我很难使用它。如果没有显示文件路径但仅显示该Blob网址,该如何下载?

如何通过VBA访问该Blob网址?现在,我只知道如何通过用鼠标右键单击图像来手动获得它,但是我没有在html源代码中找到Blob网址。

0 个答案:

没有答案