【问题标题】:Extracting multiple search results提取多个搜索结果
【发布时间】: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


    【解决方案1】:

    嗯,你有两个选择。

    1) 学习如何使用 Tools->References library 'Microsoft HTML Object Library' 导航 DOM 并以这种方式提取。

    2) 可以将网页拉到 Excel 工作表中,然后您只需从每个单元格中提取数据。容易得多,但会将您与 Excel 联系起来。使用宏记录器,然后使用 GUI,在 Ribbon Data->From Web 上并按照向导进行操作。

    【讨论】:

      【解决方案2】:

      在您的链接中将“1”更改为 2、3、4 ...这些是页码!

      http://canada411.yellowpages.ca/search/si/1/
      http://canada411.yellowpages.ca/search/si/2/
      http://canada411.yellowpages.ca/search/si/3/
      ...

      【讨论】:

        猜你喜欢
        • 2011-05-21
        • 2012-06-06
        • 2015-09-11
        • 2019-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-01
        • 2014-05-14
        相关资源
        最近更新 更多