Извлечение нескольких результатов поиска

0

Я создал приложение 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 и ценю помощь.

Теги:
excel
web-scraping
search

2 ответа

1

Ну, у вас есть два варианта.

1) Узнайте, как перемещаться по DOM с помощью библиотеки Tools-> Библиотека библиотек Microsoft HTML и извлекать этот путь.

2) Можно перетащить веб-страницу в рабочий лист Excel, а затем вам нужно только вытащить данные из каждой ячейки. Гораздо проще, но связывает вас с Excel. Используйте Macro recorder, а затем используйте графический интерфейс, на ленте Data-> "Из Интернета" и следуйте указаниям мастера.

0

В вашей ссылке измените "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/
...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню