Raspar datos de TripAdvisor usando R

Quiero crear un rastreador que elimine algunos datos de Trip Advisor. Idealmente, lo hará(una) identifica los enlaces a todas las ubicaciones para rastrear,(si) recopilar enlaces a todas las atracciones en cada ubicación y(C) recopilará los nombres de los destinos, las fechas y las calificaciones de todas las reseñas. Me gustaría centrarme en la parte (a) por ahora.

Aquí está el sitio web con el que estoy comenzando:http://www.tripadvisor.co.nz/Tourism-g255104-New_Zealand-Vacations.html

Aquí hay un problema: para empezar, el enlace proporciona los 10 destinos principales y, si hace clic en "Ver destinos más populares", expandirá la lista. Parece que usa una función de JavaScript para lograr esto. Desafortunadamente, no estoy familiarizado con JavaScript, pero creo que el siguiente fragmento puede dar pistas sobre cómo funciona:

<div class="morePopularCities" onclick="ta.call('ta.servlet.Tourism.showNextChildPage', event, this)">
<img id='lazyload_2067453571_25' height='27' width='27' src='http://e2.tacdn.com/img2/x.gif'/>
See more popular destinations in New Zealand </div>

He encontrado algunos paquetes útiles de webscraping para R, como rvest, RSelenium, XML, RCurl, pero de estos, solo RSelenium parece ser capaz de resolver esto, habiendo dicho eso, todavía no he podido trabajarlo fuera.

Aquí hay un código relevante:

tu = "http://www.tripadvisor.co.nz/Tourism-g255104-New_Zealand-Vacations.html"
RSelenium::startServer()
remDr = RSelenium::remoteDriver(browserName = "internet explorer")
remDr$open()
remDr$navigate(tu)
# remDr$executeScript("JS_FUNCTION")

La última línea debería hacer el truco aquí, pero no estoy seguro de qué función necesito llamar aquí.

Una vez que logre expandir esta lista, podré obtener los enlaces para cada destino de la misma manera que resolvería la parte (b) y creo que ya lo he resuelto (para aquellos interesados):

library(rvest)
tu = "http://www.tripadvisor.co.nz/Tourism-g255104-New_Zealand-Vacations.html"
tu = html_session(tu)
tu %>% html_nodes(xpath='//div[@class="popularCities"]/a') %>% html_attr("href")
 [1] "/Tourism-g255122-Queenstown_Otago_Region_South_Island-Vacations.html"                      
 [2] "/Tourism-g255106-Auckland_North_Island-Vacations.html"                                     
 [3] "/Tourism-g255117-Blenheim_Marlborough_Region_South_Island-Vacations.html"                  
 [4] "/Tourism-g255111-Rotorua_Rotorua_District_Bay_of_Plenty_Region_North_Island-Vacations.html"
 [5] "/Tourism-g255678-Nelson_Nelson_Tasman_Region_South_Island-Vacations.html"                  
 [6] "/Tourism-g255113-Taupo_Taupo_District_Waikato_Region_North_Island-Vacations.html"          
 [7] "/Tourism-g255109-Napier_Hawke_s_Bay_Region_North_Island-Vacations.html"                    
 [8] "/Tourism-g612500-Wanaka_Otago_Region_South_Island-Vacations.html"                          
 [9] "/Tourism-g255679-Russell_Bay_of_Islands_Northland_Region_North_Island-Vacations.html"      
[10] "/Tourism-g255114-Tauranga_Bay_of_Plenty_Region_North_Island-Vacations.html"  

En cuanto al paso (c), he encontrado algunos enlaces útiles que podrían ser útiles para eso:https://github.com/hadley/rvest/blob/master/demo/tripadvisor.R http://notesofdabbler.github.io/201408_hotelReview/scrapeTripAdvisor.html

Si tiene algún consejo sobre cómo expandir la lista de los principales destinos o cómo seguir los otros pasos de una manera más inteligente, hágamelo saber, me encantaría saber de usted.

¡Muchas gracias de antemano!

Respuestas a la pregunta(0)

Su respuesta a la pregunta