Как @ chinsoon12 упоминается в комментарии;это противоречит сроку использования TripAdvisor для очистки информации.Но я просто хотел бы знать, как использовать метод POST в rvest с этим примером.Я искал в Google и StackOverflow, но ответы не очень полезны.Любые общие предложения также приветствуются!
Вот сайт: https://www.tripadvisor.com/Hotel_Review-g33657-d85704-Reviews-Hotel_Bristol-Steamboat_Springs_Colorado.html
Итак, мне нужно нажать кнопку «еще», чтобы просмотреть полные обзоры.В противном случае это дает только частичные отзывы.
Мне удалось использовать Rselenium для симуляции кликов и получения полных обзоров, но я хочу знать, как это сделать с помощью rvest и httr.
После наблюдения сетевого трафика я обнаружил, что послеЯ нажимаю кнопку «еще», я отправил два запроса POST, перечисленных ниже:
Я попробовал этот код ниже, но тело пусто.
library(rvest)
library(httr)
url <- "https://www.tripadvisor.com/Hotel_Review-g33657-d85704-Reviews-Hotel_Bristol-Steamboat_Springs_Colorado.html"
post_to_url <-"https://www.tripadvisor.com/OverlayWidgetAjax?Mode=EXPANDED_HOTEL_REVIEWS_RESP&metaReferer="
user_agent_table <- read.csv("https://raw.githubusercontent.com/yusuzech/top-50-user-agents/master/user_agent.csv",stringsAsFactors = F)
post_body <- "reviews=556957481%2C511497076%2C556144452%2C554686822%2C548218482&contextChoice=DETAIL_HR&haveJses=earlyRequireDefine%2Camdearly%2Cglobal_error%2Clong_lived_global%2Capg-Hotel_Review%2Capg-Hotel_Review-in%2Cbootstrap%2Cdesktop-rooms-guests-dust-en_US%2Cresponsive-calendar-templates-dust-en_US%2Ctaevents&haveCsses=apg-Hotel_Review-in&Action=install"
user_agent_list <- user_agent_table$User.agent
random_agent <- function(){user_agent(sample(user_agent_list,1))}
mysession <- html_session(url,random_agent())
result <- POST(url=post_to_url,
config=list(referer = mysession$url),
user_agent(mysession$config$options$useragent),
body=post_body,
encode="raw")
result
> result
Response [https://www.tripadvisor.com/OverlayWidgetAjaxMode=EXPANDED_HOTEL_REVIEWS_RESP&metaReferer=]
Date: 2018-05-10 01:49
Status: 200
Content-Type: text/html;charset=UTF-8
<EMPTY BODY>
Я знаю, что мне нужно использовать метод POST, но я не знаю, как установить тело и другие конфигурации.Я также не уверен, нужно ли мне отправлять два почтовых запроса одновременно и как этого добиться в httr и rvest.
Любая помощь приветствуется!