#excel #vba #web-scraping
Вопрос:
Я пытаюсь соскрести www.booking.com чтобы получить некоторую информацию об отеле на основе поиска, который я провел на веб-сайте. URL-адрес содержит мой поиск, такой как адрес, регистрация и т. Д.
После поиска я пытаюсь наскрести название отеля, счет, расстояние и другую информацию, не вдаваясь в подробности (нажав на отель). Но в некотором роде я не могу пройти через шаги, чтобы получить эту информацию.
Если я прав, все результаты поиска помещаются в идентификатор «hotellist_inner», который содержит все отдельные результаты поиска в классе «sr_property_block». Но я уже получаю ошибку в первой строке: Для каждого элемента в objIE.Document.getElementsById(«hotellist_inner»), так как кажется, что результат getElementById пуст.
Смотрите мой пример кода ниже.
Sub test()
Dim ws As Worksheet: Set ws = Sheets("scrape")
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
Dim url As String
url = ws.Range("A1")
With objIE
.navigate url
.Visible = True
End With
'wait IE
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
ResRw = 2
For Each itemEle In objIE.Document.getElementById("hotellist_inner")
'Every booking goes on a new line, so reset the column to 1
ResCol = 1
For Each d In itemEle.getElementByClassName("sr_property_block ") 'Each result (hotel) has this Class
'For the next result, add 1 to the column
ResCol = ResCol 1
Next d
'For the next result, add 1 to the row
ResRw = ResRw 1
Next
objIE.Quit
Set objIE = Nothing
End Sub
У кого-нибудь есть идеи, как это исправить?
Tnx!
Комментарии:
1. Пожалуйста, укажите пример URL
2. Что-нибудь происходит? какие-нибудь ошибки?