level 12
🌞Shawn
楼主
使用VBA+Selenium可以很便利地在浏览器上进行操作, 以及抓取一些需要的信息.
先分享一个例子, 抓取VBA贴吧的首页所有标题, 以及相应的每个链接, 效果图如下.

代码如下:
Option Explicit
'安装 Selenium 2.0.9
'配置当前版本的Chrome Driver
'参照Tools->Reference->Selenium Type Library
Public cd As Selenium.ChromeDriver
Sub TiebaList_Selenium()
Dim titles As Selenium.WebElements
Dim title As Selenium.WebElement
Dim url As String, row As Long
url = "https://tieba.baidu.com/f?kw=vba&ie=utf-8"
Set cd = New Selenium.ChromeDriver
With cd
.AddArgument "start-maximized" '窗口最大化
.Start
.Get url '访问网址
.FindElementById("head").WaitDisplayed '等待head显示
Set titles = .FindElementsByXPath("//*[@id='thread_list']//div/div[2]/div[1]/div[1]/a") '抓取首页
row = 1
For Each title In titles
''Debug.Print title.Text
Range("A" & row + 1) = title.Text
Range("B" & row + 1).Hyperlinks.Add Range("B" & row + 1), title.Attribute("href")
row = row + 1
Next title
.Quit '退出
End With
End Sub
2021年08月18日 09点08分
1
先分享一个例子, 抓取VBA贴吧的首页所有标题, 以及相应的每个链接, 效果图如下.

代码如下:Option Explicit
'安装 Selenium 2.0.9
'配置当前版本的Chrome Driver
'参照Tools->Reference->Selenium Type Library
Public cd As Selenium.ChromeDriver
Sub TiebaList_Selenium()
Dim titles As Selenium.WebElements
Dim title As Selenium.WebElement
Dim url As String, row As Long
url = "https://tieba.baidu.com/f?kw=vba&ie=utf-8"
Set cd = New Selenium.ChromeDriver
With cd
.AddArgument "start-maximized" '窗口最大化
.Start
.Get url '访问网址
.FindElementById("head").WaitDisplayed '等待head显示
Set titles = .FindElementsByXPath("//*[@id='thread_list']//div/div[2]/div[1]/div[1]/a") '抓取首页
row = 1
For Each title In titles
''Debug.Print title.Text
Range("A" & row + 1) = title.Text
Range("B" & row + 1).Hyperlinks.Add Range("B" & row + 1), title.Attribute("href")
row = row + 1
Next title
.Quit '退出
End With
End Sub





