Цены на номера в отелях варьируются в зависимости от даты заезда и отъезда. Таким образом, расценки должны зависеть от указанных дат.
Я новичок в изучении веб-страниц и попытался запустить простой скрипт на R, чтобы проверить стоимость номера определенного отеля на TripAdvisor.
library(rvest)
url <- "https://www.tripadvisor.com/Hotel_Review-g60971-d75749-Reviews-Little_America_Hotel_Flagstaff-Flagstaff_Arizona.html"
page <- read_html(url)
rate <- html_nodes(page, ".bb_price_text")
print(rate)
Результат меня удивил. Сегодня я получил три разных тарифа в течение нескольких минут, хотя только один из этих тарифов (199 долларов) постоянно отображается в Интернете, когда я обращаюсь к URL-адресу с помощью браузера (сумма, отображаемая в режиме онлайн с зачеркиванием, составляет 216 долларов США).
#{xml_nodeset (1)}
#[1] <div class="bb_price_text hasStrikeThrough">$189</div>
#{xml_nodeset (1)}
#[1] <div class="bb_price_text hasStrikeThrough ">$199</div>
#{xml_nodeset (1)}
#[1] <div class="bb_price_text ">$259</div>
Я предполагаю, что разные тарифы соответствуют разным датам регистрации заезда и отъезда. Чтобы узнать, какие даты соответствуют ставке, которую я проверял, я выполнил следующий код.
dates <- html_nodes(page, ".picker-count")
print(dates)
Это вернулось 29 мая и 30 мая.
#{xml_nodeset (2)}
#[1] <span class="picker-count">May 29</span>
#[2] <span class="picker-count">May 30</span>
Тот факт, что три различных показателя отображаются, означает, что сценарий циклически проходит три различных набора дат заезда и выезда. Как? Можно ли программно установить эти даты в R до перескакивания?
Любое понимание или помощь очень ценится!