2017-11-02 5 views
0

Ich versuche, einen Text aus verschiedenen Sprachen automatisch in Englisch zu übersetzen.Fehler mit getURL-Funktion in r

ich die Passagen tue erklärt auf dieser anderen Frage: Google translate via web scraping r

aber ich erhalten diese Fehlermeldung:

Error in function (type, msg, asError = TRUE) : Illegal characters found in URL 

mein Code

getParam <- as.character(db$text) 
translateFrom <- as.character(db$language) 

translateTo <- "en" 
search <- gsub(" ", "%20", getParam) 
URL <- paste("https://translate.google.pl/m?hl=",translateFrom,"&sl=",translateFrom,"&tl=",translateTo,"&ie=UTF-8&prev=_m&q=",search,sep="", ssl.verifypeer = FALSE) 

page <- getURL(URL) 

tree <- htmlTreeParse(page) 

body <- tree$children$html$children$body 
+0

Was ist Ihre URL? Bitte versuchen Sie, dies reproduzierbar zu machen, indem Sie (eine Stichprobe von) Ihre Daten und Ihren genauen Code (auch wenn eine Kopie von einer anderen Frage stammt) einschließen. – r2evans

+0

@ r2evans etwas wie das? Ist es o.k? – Silvia

+0

Nein. Um zu sehen, ob es in Ordnung ist, starten Sie eine "frische" R-Instanz (ohne geladene Variablen oder Pakete) und versuchen Sie, Ihren Code auszuführen. Wenn Sie "object" ... "not found" oder "count not find function" "..." 'erhalten, ist Ihre Antwort nicht ausreichend reproduzierbar. In diesem Fall haben wir keine Ahnung, was 'db' enthält. – r2evans

Antwort

0
library(XML) 
library(RCurl) 

db=data.frame(text = c("traduire", "tradurre"), langage=c("fr", "it")) 

ls = unlist(apply(db, 1, list), recursive = FALSE) 

lapply(unlist(apply(db, 1, list), recursive = FALSE), function(x){ 

    getParam <- as.character(x[1]) 
    translateFrom <- as.character(x[2]) 

    translateTo <- "en" 
    search <- gsub(" ", "%20", getParam) 
    URL <- paste("https://translate.google.pl/m?hl=",translateFrom,"&sl=",translateFrom,"&tl=",translateTo,"&ie=UTF-8&prev=_m&q=",search,sep="") 
    page <- getURL(URL) 
    tree <-htmlTreeParse(page) 
    body <- tree$children$html$children$body 
    body_text <- body$children[[5]]$children[[1]] 
    body_text 

})