使用Selenium运行VBA循环以将HTML数据扫描到Excel中

时间:2015-08-17 14:47:15

标签: html excel vba excel-vba selenium

最近我帮助Stackoverflow的人从网页上抓取数据。这是一个很棒的社区。我得到了一个函数,可以将数据从包含url的单元格中提取到excel中。不幸的是我遇到了一些问题,因为我需要一个循环函数,以便Excel在保存或刷新页面后不会重新启动所有功能。

到目前为止,我已尝试构建此功能,但在VBA中无用。想知道是否有人可以提供一些额外的帮助。

Sub POSTPageViews()
Dim InputSheet As Worksheet
Dim i As Long
Dim AllWords As Range
Dim text As String
Dim OutValue As String
Dim driver As SeleniumWrapper.WebDriver
On Error Resume Next

Set driver = New SeleniumWrapper.WebDriver
driver.Start "chrome", "https://re.po.st/"
driver.Open strLocation

Set InputSheet = Active
Set WorkRng = Application.Selection
WordListSheet.Range("E1") = "All Words"
InputSheet.Activate
r = 1

Do While Cells(r, 1) <> ""
  Cells(r, 1).Value = txt
OutValue =        driver.findElementById("sguidtotaltable").findElementByTagName("span").text
 Next i
r = r + 1
driver.stop 'Stops the browser
Loop
End Sub

但自然它不起作用......有人看到了什么问题吗?基本上在E列中我有所有的URL,在列K中我想看到附带的值。

由于

1 个答案:

答案 0 :(得分:1)

这是否有效(根据我的评论精神)?

Sub POSTPageViews()
Dim driver As SeleniumWrapper.WebDriver

Set driver = New SeleniumWrapper.WebDriver
driver.Start "chrome", "https://re.po.st/"

With Worksheets("Trial")

r = 2

Do While .Cells(r, 5) <> ""
driver.Open .Cells(r, 5).Value
.Cells(r, 11) =    driver.findElementById("sguidtotaltable").findElementByTagName("span").text
r = r + 1

Loop
driver.stop 'Stops the browser
End Sub