使用VBA和Selenium访问网页正文

时间:2018-11-07 02:46:14

标签: excel vba excel-vba selenium

我正在尝试转换当前使用Internet Explorer的Excel macro,并使用以下代码行提取网页的<body>文本

x = .Document.DocumentElement.InnerText

使用Selenium演示,我可以使用jpg生成页面的Chrome & IE,但是Firefox仅加载空白页面,而IE64 & Edge不适用于Windows 10.

我无法使用Selenium找到正确的VBA命令来将正文复制到变量“ x”。我只想读。

我正在尝试这样做,以使我的宏浏览器独立。

该宏仅供我使用。

吉姆

1 个答案:

答案 0 :(得分:0)

您并不是要使它与浏览器无关。您只是将浏览器的选择范围扩展到了selenium basic支持的浏览器。这带来了您自己注意到的一些问题。

  1. 包含驱动程序的文件夹必须位于环境路径或作为参数传递给selenium webdriver的路径上。
  2. 您应该使用最新的Chrome浏览器和Chrome驱动程序
  3. 您不能使用最新的FireFox浏览器和驱动程序。不支持。我认为您需要FF v.46.0.1
  4. 如果使用IE,则缩放比例必须达到100%。
  5. 我建议浏览Github的问题页面以了解其他已知问题
  6. 从历史上看,我听说过一些有关Windows 10和Selenium Basic问题的戏-声-很想知道是否有人可以使用该版本,因为我不在该版本上。

查看examples.xlsm提供的selenium basic GitHub site,以了解支持哪些其他浏览器(例如Opera,PhantomJS,FirefoxLight,CEF)。

使用Chrome,您可以通过以下方式获取正文:

Option Explicit 
Public Sub GetInfo()
    Dim d As WebDriver, s As String
    Set d = New ChromeDriver
    Const URL = "https://www.neutrinoapi.com/api/api-examples/python/"

    With d
        .Start "Chrome"
        .get URL
        s = .FindElementByTag("body").Text
        Debug.Print s
        .Quit
    End With
End Sub

其他信息: https://stackoverflow.com/a/52294259/6241235