2016-05-24 2 views
0

Ich möchte die Informationen über die Bewertung von Zimmer (Genauigkeit, Kommunikation, Sauberkeit, Lage, Check In, Wert) zu extrahieren.Web-Scraping mit R. Extracting Rating-Marken von Web-Seite

url <- "https://www.airbnb.com/rooms/8400275" 
con <- file (url) 
raw <- readLines (con) 
close (con) 

und jetzt brauche ich eine Zeichenfolge, die mir helfen wird, die Informationen zu extrahieren. Im Quellcode fand ich eine solche Zeile:

data-reactid=".1tzzodvxlvk.1.0.0.0.0.0.3.0.0.1.0"><div class="col-lg-6" 
data-reactid=".1tzzodvxlvk.1.0.0.0.0.0.3.0.0.1.0.$col-0"><div data 
reactid=".1tzzodvxlvk.1.0.0.0.0.0.3.0.0.1.0.$col-0.$Accuracy"><div 
class="pull-right" data 
reactid=".1tzzodvxlvk.1.0.0.0.0.0.3.0.0.1.0.$col-0.$Accuracy.0"><div 
class="star-rating-wrapper" data 
reactid=".1tzzodvxlvk.1.0.0.0.0.0.3.0.0.1.0.$col-0.$Accuracy.0.0"> 
class="star-rating" content="4.5" 

Wie ich verstanden, das ist der Code von „Genauigkeit“ Bewertung des Raumes. Ich möchte "The content = '4.5'" und den Namen der Schätzung "Accuracy" extrahieren. Wie kann ich das tun? Das Problem ist, dass es im Quellcode viele solcher "Content =" - und "Accuracy" -Strings gibt.

Antwort

1

Für diese bestimmte Seite könnten Sie diesen Ansatz verwenden. Aber der Code ist nicht sehr robust und der Erfolg für andere Seiten hängt davon ab, ob die Struktur die gleiche ist

library(RCurl) 
library(XML) 

url<-"https://www.airbnb.com/rooms/8400275" 
url2<-getURL(url) 
parsed<-htmlParse(url2,encoding="UTF-8") 
xpathSApply(parsed,"//div[@class='col-lg-6']//strong",xmlValue)[1] 
xpathSApply(parsed,"//div[@class='star-rating-wrapper']//div[@class='star-rating']",xmlGetAttr,"content")[3] 
+0

Funktioniert gut, danke :) – YNWA1992