Excel 很难从工作表中找到网站,然后返回结果
我正试图编写一个脚本,从我在工作表中列出的一组网站中获取数据。我想将刮取的数据返回到单独的工作表中。我还没有弄清楚如何让我的脚本读取第一个工作表条目,返回数据,然后读取第二个,返回数据等。这是我迄今为止写的(正如你所看到的,我只是有一个我正在抓取的第一个网站的示例)Excel 很难从工作表中找到网站,然后返回结果,excel,selenium,Excel,Selenium,我正试图编写一个脚本,从我在工作表中列出的一组网站中获取数据。我想将刮取的数据返回到单独的工作表中。我还没有弄清楚如何让我的脚本读取第一个工作表条目,返回数据,然后读取第二个,返回数据等。这是我迄今为止写的(正如你所看到的,我只是有一个我正在抓取的第一个网站的示例) 我试过了,我可以让它转到一张工作表并打印输出,但它只打印所有单元格中最后返回的值:-( 选项显式 私有cd作为Selenium.ChromeDriver 亚周刊价格() Option Explicit Private cd As S
我试过了,我可以让它转到一张工作表并打印输出,但它只打印所有单元格中最后返回的值:-( 选项显式 私有cd作为Selenium.ChromeDriver 亚周刊价格()
Option Explicit
Private cd As Selenium.ChromeDriver
Sub WeeklyPrices()
Dim cd As Selenium.ChromeDriver
Dim RowNum As Long, ColNum As Integer
Set cd = New Selenium.ChromeDriver
cd.AddArgument "--headless"
cd.start
cd.get "https://www.hamsmarketing.ca/market_data/January-4-2021/"
'Find Header
Dim H2Headers As Selenium.WebElements
Dim H2Header As Selenium.WebElement
Set H2Headers = cd.FindElementsByCss("h2:nth-of-type(4)")
For Each H2Header In H2Headers
Worksheets.Add
Range("A2").Value = H2Header.Text
RowNum = 1
ColNum = 1
Cells(RowNum, ColNum) = H2Header.Text
'ColNum = ColNum + 1
'RowNum = RowNum + 1
Next H2Header
'H2Header.AsSelect.ToExcel Worksheets.Add.Range("A1")
' Find Prices
Dim OtdListItems As Selenium.WebElements
Dim OtdListItem As Selenium.WebElement
Set OtdListItems = cd.FindElementsByCss("ul:nth-of-type(4)")
For Each OtdListItem In OtdListItems
Range("B2").Value = OtdListItem.Text
Next OtdListItem
cd.Quit
End Sub
' Open Chrome
Dim cd As Selenium.ChromeDriver
Dim RowNum As Integer, ColNum As Integer
Set cd = New Selenium.ChromeDriver
Dim Count As Integer
For Count = 1 To 2
Dim Value As String
Dim names As Range
Set names = Range("c1:c2")
Dim cell As Range
For Each cell In names
cd.AddArgument "--headless"
cd.start
cd.get cell.Value
'Find Headers
Dim H2Headers As Selenium.WebElements
Dim H2Header As Selenium.WebElement
Set H2Headers = cd.FindElementsByCss("h2:nth-of-type(4)")
For Each H2Header In H2Headers
'Debug.Print H2Header.Text
RowNum = Count
ColNum = 1
Cells(RowNum, ColNum) = H2Header.Text
Next H2Header
' Find Prices
Dim OtdListItems As Selenium.WebElements
Dim OtdListItem As Selenium.WebElement
Set OtdListItems = cd.FindElementsByCss("ul:nth-of-type(4)")
For Each OtdListItem In OtdListItems
'Debug.Print OtdListItem.Text
RowNum = Count
ColNum = 2
Cells(RowNum, ColNum) = OtdListItem.Text
Next OtdListItem
Next cell
Next Count
cd.Quit
End Sub