VBA/Excel - 多个网站抓取 returns 重复

VBA/Excel - Multiple website scrape returns duplicates

我一直在从多个网站抓取数据,并从每个网站中提取 excel 特定标签的内部文本。代码如下:

For Each x In Range("C2:C30")
If x <> Blank Then

    With Web
        .navigate Cells(x.Row, 3).Value
    End With
    Do While Web.Busy
    DoEvents
    Loop

    Set Doc = Web.document
    Set AllClass = Doc.getElementsByClassName("name")

    On Error Resume Next
    vName = AllClass(0).innerText

    Cells(x.Row, 1).Value = vName

    Next x

现在这可行了,但是,它会随机 returns 重复结果。尽管我确实在循环开头插入了 'DoEvents' ,但在提取信息之前似乎无法正确加载整个页面。例如,我应该从五个网站获取以下信息:

  1. Bob
  2. John
  3. Jane
  4. Joe
  5. Hank

相反,我得到了这样的东西(随机变化):

  1. Bob
  2. John
  3. John
  4. Joe
  5. Hank

并且 运行 宏将再次随机产生:

  1. Bob
  2. John
  3. Jane
  4. Jane
  5. Jane

我怀疑这与 IE 从上一页抓取数据有关,因为它无法完成网站加载。不知道如何解决这个问题..

谢谢!

不仅要检查 Busy,还要检查 ReadyState(页面加载完成时应为 4)