【发布时间】:2017-10-12 19:56:25
【问题描述】:
我对在 vba 中使用 IE 非常陌生,因此有时我很难纠正我在编写任何代码以从网络上抓取数据时所犯的任何错误。我已经编写了一些代码来单击标题 Microsoft computer training videos 下的 20 个链接中的每个视频链接,该标题位于其首页。我希望单击每个链接,然后返回并重复该过程,直到单击所有链接。我在爬虫中定义的类名和标签名是准确的。我需要做的就是以正确的方式执行该过程。此时,我的爬虫正在单击 20 个链接中的最后一个链接,然后卡在它到达的地方,但没有返回。
这是我到目前为止写的。
Sub clicking_links()
Const surl As String = "http://www.wiseowl.co.uk/videos/"
Dim IE As New InternetExplorer, iedoc As HTMLDocument
Dim posts As Object
With IE
.Visible = True
.navigate surl
Do Until .readyState = READYSTATE_COMPLETE: Loop
Set iedoc = IE.document
End With
For Each posts In iedoc.getElementsByClassName("woVideoListDefaultSeriesTitle")
posts.getElementsByTagName("a")(0).Click
Next posts
End Sub
【问题讨论】:
-
你可以在
Next posts之后使用IE.navigate surl吗? -
@Victor K,我不明白你在循环后使用
IE.navigate surl的逻辑,因为循环完成后,如果不返回surl页面,就无处可去。 -
嗯,你说你希望它在循环后导航回来。我将其解释为导航到起点。那么你希望它在循环之后去哪里?
-
它只点击最后一个链接,并在 20 个链接中卡住,而不是 20 个链接。
-
尝试等待每次点击后加载
标签: vba excel internet-explorer web-scraping click