2017-05-15 1 views
0

Ich versuche, uns die Rvest-Paket, um Schlagzeilen aus den Bloomberg und CNB Websites zu kratzen. Jetzt, wenn Sie die Bloomberg-Website durch den Code setzen, kommen der Text und die Sätze gut bearbeitet heraus. Wenn Sie jedoch die cnbc-Website ausprobieren, kommt es mit sehr unreinem Text aus.mit rvest (Scraping) Paket und dann die Reinigung des Textes

Bitte könnte jemand vorschlagen, die Daten zu bereinigen, so dass alle zufälligen Buchstaben und Symbole entfernt werden und ich nur mit den Sätzen übrig bin. Ich habe zahlreiche Methoden ausprobiert, aber nichts scheint zu funktionieren, um den Text sauber aussehen zu lassen.

#install.packages("rvest") 
library("rvest") 
#install.packages("XML") 
library("XML") 
bloombergmarket <- read_html("https://www.bloomberg.com/markets") 
databloombergi<-bloombergmarket%>%html_nodes(".module-headline-link")%>%html_text() 
databloombergi<-gsub("\\d+","",databloombergi) 
databloombergi<-gsub("[[:punct:]]","",databloombergi) 

cnbcmarket <- read_html("http://www.cnbc.com/us-news/") 
datacnbci<-cnbcmarket%>%html_nodes("div a")%>%html_text() 
datacnbci<-gsub("\\d+","",datacnbci) 
datacnbci<-gsub("[[:punct:]]","",datacnbci) 

Antwort

2

aus dem aus dem Code in Ihrer Frage resultierende datacnbci Objekt arbeiten, es sieht aus wie die einzige Reinigung zu tun links Leerzeichen aufzuräumen.

#replace multiple whitespaces with single space 
datacnbci <- gsub('\\s+',' ',datacnbci) 
#trim spaces from ends of elements 
datacnbci <- trimws(datacnbci) 
#drop blank elements 
datacnbci <- datacnbci[datacnbci != ''] 

Sie möchten können spezifischere dann div a für Ihren CSS-Selektor sein, wenn Ihr Ziel nur ist, um die Schlagzeilen zu erfassen. Die Selector Gadget könnte ein gutes Werkzeug sein, um spezifischere Ergebnisse zu erhalten.

einen spezifischeren Selektor:

datacnbci <- cnbcmarket %>% 
    html_nodes(".headline a") %>% 
    html_text() 

datacnbci <- gsub("\\d+","",datacnbci) 
datacnbci <- gsub("[[:punct:]]","",datacnbci) 

#replace multiple whitespaces with single space 
datacnbci <- gsub('\\s+',' ',datacnbci) 
#trim spaces from ends of vector elements 
datacnbci <- trimws(datacnbci) 
#drop blank elements 
datacnbci <- datacnbci[datacnbci != ''] 
0

Vielen Dank für Ihre Antwort. Schätze es wirklich.

Mit freundlichen Grüßen

Aalok