Excel 用VBA实现网页导航

Excel 用VBA实现网页导航,excel,vba,web-scraping,Excel,Vba,Web Scraping,我试图导航到HTML表上的下一页,但我很难找到答案。我使用了以下几种方法。我在我的另一个项目中使用了这段代码,它在该项目中导航良好。我认为将其添加到新项目中是一个简单的过程。然而,这并不像我想象的那么容易。我似乎不明白它为什么不导航 导航和2x延迟数据来自表3 A2、B2和C2,如下图所示 HTML文件 我使用了以下三个Class/ID,目前代码中有Class 1,它按照Sheet3 A2中的说明7次提取数据,但是它没有导航到下一页。它应该导航7页,而不是7次提取相同的数据 迄今为止的结果

我试图导航到HTML表上的下一页,但我很难找到答案。我使用了以下几种方法。我在我的另一个项目中使用了这段代码,它在该项目中导航良好。我认为将其添加到新项目中是一个简单的过程。然而,这并不像我想象的那么容易。我似乎不明白它为什么不导航

导航和2x延迟数据来自表3 A2、B2和C2,如下图所示

HTML文件

我使用了以下三个Class/ID,目前代码中有Class 1,它按照Sheet3 A2中的说明7次提取数据,但是它没有导航到下一页。它应该导航7页,而不是7次提取相同的数据

迄今为止的结果

这是类1的结果,另一个类/ID只拉取1个结果,没有导航

代码

'''######## NUMBER OF PAGES TO NAVIGATE COMES FROM SHEET3 A2 #########
    If pageNumber >= Replace(Worksheets("Sheet3").Range("A2").Value, " ", "+") Then Exit Do
       On Error Resume Next

'''######## CLICK TO NEXT PAGE #############
Set nextPageElement = Html.getElementsByClassName("dataTables_paginate paging_full_numbers")(0)
     'Set nextPageElement = Html.getElementsByClassName("paginate_button next")(0)
     'Set nextPageElement = Html.getElementById("table_1_next")(0)
If nextPageElement Is Nothing Then Exit Do

'''####### RANDOM DELAY 1 FROM SHEET3 B2 #########
     Application.Wait Now + TimeSerial(0, 0, Application.RandBetween(1, Worksheets("Sheet3").Range("C2").Value))
     nextPageElement.Click 'next web page

Do While objIE.Busy = True Or objIE.readyState <> 4
   DoEvents
Loop

'''####### RANDOM DELAY 2 FROM SHEET3 C2 #########
    Application.Wait Now + TimeSerial(0, 0, Application.RandBetween(1, Worksheets("Sheet3").Range("C2").Value))
    Set Html = objIE.document
      pageNumber = pageNumber + 1
    Loop
''要导航的页数来自第3页A2#########
如果页码>=Replace(工作表(“Sheet3”).范围(“A2”).值“,”+”),则退出Do
出错时继续下一步
''点击进入下一页#############
Set nextPageElement=Html.getElementsByClassName(“数据表分页完整编号”)(0)
'Set-nextPageElement=Html.getElementsByClassName(“下一步分页按钮”)(0)
'Set nextPageElement=Html.getElementById(“表1\u下一步”)(0)
如果nextPageElement为Nothing,则退出Do
''来自表3 B2的随机延迟1#########
Application.Wait Now+TimeSerial(0,0,Application.randthever(1,工作表(“Sheet3”).范围(“C2”).值))
下一个网页元素。单击“下一个网页”
Do While objIE.Busy=True或objIE.readyState 4
多芬特
环
''来自表单3 C2的随机延迟2#########
Application.Wait Now+TimeSerial(0,0,Application.randthever(1,工作表(“Sheet3”).范围(“C2”).值))
设置Html=objIE.document
页码=页码+1
环
简单回顾一下,我曾尝试使用代码中所示的类或ID,但似乎没有任何效果,目前代码中有类1,该类7次获得与sheet3 A2中所述相同的结果,此时它应该在表中导航7次并获得7个不同的结果

这个问题也与此有关,我现在被困在页面导航部分


这是网站url

看起来我解决了这个问题,我再次使用它,它工作了
设置nextPageElement=Html.getElementsByClassName(“下一步分页按钮”)(0)
。不知道为什么它以前不起作用。