VBA / 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
现在这个工作,但是,它随机返回重复的结果。 虽然我在循环的开始处插入了“DoEvents”,但似乎并未正确加载整个页面。 例如,我应该从五个网站获得以下信息:
- 短发
- 约翰
- 简
- 乔
- 汉克
相反,我得到这样的东西(随机变化):
- 短发
- 约翰
- 约翰
- 乔
- 汉克
再次运行macros将随机产生:
- 短发
- 约翰
- 简
- 简
- 简
我怀疑这与IE浏览器从上一页中抓取数据有关,因为它无法完成加载网站。 不知道如何解决这个问题..
谢谢!
不仅要检查繁忙,还要检查ReadyState(页面加载完成后应该是4)