【问题标题】:Downloading PDF document in Chrome using VBA Selenium使用 VBA Selenium 在 Chrome 中下载 PDF 文档
【发布时间】:2021-03-21 05:20:59
【问题描述】:

我目前需要从特定网站下载多个 PDF 文件。

一旦我到达这一点,通常的操作是单击保存按钮或键入“CTRL + S”

Click on Save button

我在this post of IE Automation检索到了这个

但我正在尝试使用以下代码执行下载操作:

bot.SendKeys Keys.Control, "s"

而且不工作。

如何在 Chrome 上进行这项工作?

谢谢,

【问题讨论】:

    标签: excel vba selenium download selenium-chromedriver


    【解决方案1】:

    您可以使用它来下载 pdf。

       Dim PDF_URL as string
    
       #If VBA7 Then
        Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" ( _
        ByVal pCaller As LongPtr, _
        ByVal szURL As String, _
        ByVal szFileName As String, _
        ByVal dwReserved As LongPtr, _
        ByVal lpfnCB As LongPtr) As LongPtr
    
    #Else
    Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" ( _
    ByVal pCaller As Long, _
    ByVal szURL As String, _
    ByVal szFileName As String, _
    ByVal dwReserved As Long, _
    ByVal lpfnCB As Long) As Long
    #End If
    
    
    
    Private Sub File_Download()
        Dim FileURL As String
        Dim DestinationFile As String
        FileURL = PDF_URL
        DestinationFile = "C:\PDFs\PDFName.pdf"
        If URLDownloadToFile(0, FileURL, DestinationFile, 0, 0) = 0 Then
            Debug.Print "File downloaded started"
        Else
            Debug.Print "File downloaded not started"
        End If
    End Sub
    
    
    Private Sub GetURL
      PDF_URL = Chrome_Driver.FindElementById("EleID").Attribute("src")
      File_Download
    end sub
    

    【讨论】:

      【解决方案2】:

      有很多网站可能不允许机器人。您应该访问该网站的 /robots.txt 以查看是否对机器人拉取您尝试抓取的内容有任何限制。这些部分将显示“禁止”任何禁止机器人访问的内容。

      示例:google/robots.txt

      是的,网站甚至可以判断您是否在使用 Selenium。

      【讨论】:

        猜你喜欢
        • 2019-04-12
        • 1970-01-01
        • 1970-01-01
        • 2019-05-28
        • 1970-01-01
        • 1970-01-01
        • 2018-05-21
        • 1970-01-01
        • 2022-09-27
        相关资源
        最近更新 更多