Я создал приложение 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 и ценю помощь.
Ну, у вас есть два варианта.
1) Узнайте, как перемещаться по DOM с помощью библиотеки Tools-> Библиотека библиотек Microsoft HTML и извлекать этот путь.
2) Можно перетащить веб-страницу в рабочий лист Excel, а затем вам нужно только вытащить данные из каждой ячейки. Гораздо проще, но связывает вас с Excel. Используйте Macro recorder, а затем используйте графический интерфейс, на ленте Data-> "Из Интернета" и следуйте указаниям мастера.
В вашей ссылке измените "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/
...