【发布时间】:2014-10-29 11:05:17
【问题描述】:
我创建了一个 VBA 应用程序,允许您从 canada411.ca 站点提取搜索结果。您只需将值插入值“Where”和“What”和“Title”,“Location”和“Phone”就会吐出。在我的代码中 What = “Name”。这是我的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = Range("Name").Row And _
Target.Column = Range("Name").Column Then
End If
If Target.Row = Range("Where").Row And _
Target.Column = Range("Where").Column Then
'Set Variables What and Where from Canada411.ca to Values on Excel WorkSheet
Dim IE As New InternetExplorer
IE.Visible = True
IE.navigate ("http://canada411.yellowpages.ca/search/si/1/") & _
Range("Name").Value & "/" & Range("Where").Value
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Dim Doc As HTMLDocument
Set Doc = IE.document
'Extract from Canada411.ca Source element (first search result)
Range("Title").Value = Trim(Doc.getElementsByTagName("h3")(0).innerText)
Range("Phone").Value = Trim(Doc.getElementsByTagName("h4")(0).innerText)
Range("Location").Value = Trim(Doc.getElementsByClassName("address")(0).innerText)
IE.Quit
'Extract for Second Search result
'Third Search result etc.
End If
End Sub
我的问题是我不知道如何获取页面上剩余的结果,我只能获取第一页上的第一个结果。后续搜索结果的源代码与第一个相同,但我似乎无法使其工作。 (也许在您获得第一个代码之后有一个快捷方式来获取其余部分?)我是 VBA 和 HTML 新手,感谢您的帮助。
【问题讨论】:
标签: html excel vba search web-scraping