【问题标题】:VBA Macro to pull data from secure website to excelVBA 宏将数据从安全网站提取到 Excel
【发布时间】:2015-11-21 06:37:46
【问题描述】:

我有代码可以使用宏将一般数据从网站提取到 excel 中,例如雅虎财经报价。但是,是否有可能从安全网站(需要登录的网站)提取数据以自动生成报告?提供的链接很接近,但我不明白如何传递参数。另外,当我运行它时,我只得到一个带有“X”的对话框,没有别的...... 编辑: 我从 SAP SuccessFactors 中撤出。我可以让宏提取与 URL 关联的 pdf,但它不会获取临时 excel 报告。如果有人有任何想法,那就太好了!我在下面粘贴了我的代码:

Dim driver As New Selenium.WebDriver
Public Sub DownloadFile()
    driver.Start "Chrome"
    driver.Get "https://performancemanager4.successfactors.com/login company=Arrow&username=A79123"
    driver.Wait 20000
    driver.Get "https://performancemanager4.successfactors.com/acme?fbacme_n=analytics&bplte_company=Arrow&_s.crb=EAYY%2bFNmT7%2b%2b8%2fbKt4IEV6RmGRM%3d"
    driver.Wait 1000
    driver.Get "https://performancemanager4.successfactors.com/acme?_s.crb=EAYY%252bFNmT7%252b%252b8%252fbKt4IEV6RmGRM%253d#focus"
    driver.Wait 1000
    driver.Get "file:///C:/Users/a79123/Downloads/report_Hires_by_Job_Family_Sarah_07a6559d-98a8-436d-b686-5abd2a2c631d.pdf"
End Sub

【问题讨论】:

标签: vba excel


【解决方案1】:

几个月前,我在 VBA 中使用过 Selenium。我发现的最好方法是在代码中放置一个等待时间,让您有足够的时间登录网站,然后让代码从那里获取一次。我认为我遇到的最大问题是没有存储如果其他人想要使用代码中的用户名和密码,或者使用 Excel 很难为密码字段创建带有隐藏文本的表单。

Dim driver As New SeleniumWrapper.WebDriver
Public Sub getData()
   driver.Start "IE"
   driver.Open "your site here"
   driver.Wait 20000 ' use this time to log in
   ' more code here
End Sub

【讨论】:

  • 让机器等待是个好主意,但是当我尝试将 Dim 驱动程序作为新的 SeleniumWrapper 时...我收到一条错误消息,提示未定义用户定义的对象?
  • 您必须先安装它才能使用它。你应该可以在这里抓住它florentbr.github.io/SeleniumBasic
  • 我得到了 Selenium 工具,它确实很酷。您是否将上面的代码放入 Excel 中的 VBA 代码中?我正在这样做,但它仍然不正确。
  • 我会仔细检查并确保将其作为参考添加到工具--> 参考--> seleniumwrapper tpe 库下。要对其进行测试,请将您使用的任何链接放在 driver.open 之后,它应该会打开 Internet Explorer 到您的网页,然后等待。从那里您将不得不对 selenium 库进行一些试验,但其中有很多用于与网页交互的命令。我认为只要你不处理 iframe,它应该不会太糟糕。 Selenium 应该附带一些示例代码,它们也应该可以帮助您开始工作。只需检查已安装的文件即可。
  • 啊!做到了!您是否知道是否有一种方法可以捕获我在网络上的操作并运行该脚本以便在 xls 中查找和导出报告?我可以用它来抓取并下载 pdf 格式的报告,但 xls 更难,因为它没有 URL……不过这太酷了!
【解决方案2】:

以下链接显示了一种从网络下载数据的方法,允许您传递用户名和密码:https://stackoverflow.com/a/17877390/5521518

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多