我想使用R的网站.网站是
http://soundoftext.com/,我可以下载WAV.具有来自给定文本和语言(语音)的音频的文件.
在WAV中下载语音有两个步骤:
1)插入文本和选择语言.并提交
2)在新窗口中,单击“保存”并选择文件夹.
到现在为止,我可以获取xml树,将其转换为列表并修改文本和语言的值.但是,我不知道如何将列表转换为XML(使用新值)并执行它.然后,我还需要做第二步.
到目前为止,这是我的代码:
require(RCurl) require(XML) webpage <- getURL("http://soundoftext.com/") webpage <- readLines(tc <- textConnection(webpage)); close(tc) pagetree <- htmlTreeParse(webpage,error=function(...){},useInternalNodes = TRUE) x<-xmlToList(pagetree) # Inserting word x$body$div$div$div$form$div$label$.attrs[[1]]<-"Raúl" x$body$div$div$div$form$div$label$.attrs[[1]] # Select language x$body$div$div$div$form$div$select$option$.attrs<-"es" x$body$div$div$div$form$div$select$option$.attrs
更新:我只是尝试使用rvest下载音频文件,但是,它没有响应或触发任何东西.我做错了什么(失踪)?
url <- "http://soundoftext.com/" s <- html_session(url) f0 <- html_form(s) f1 <- set_values(f0[[1]],text="Raúl",lang="es") attr(f1,"type") <- "Submit" s[["fields"]][["submit"]] <- f1 attr(f1,"Class") <- "save" test <- submit_form(s,f1)
解决方法
我认为你的方法没有错,值得一试……这也是我写的.
该页面有些令人讨厌,因为它使用jquery在每个请求中附加新的div.我仍然认为应该可以使用rvest,但我找到了一个使用httr包的有趣解决方法:
该页面有些令人讨厌,因为它使用jquery在每个请求中附加新的div.我仍然认为应该可以使用rvest,但我找到了一个使用httr包的有趣解决方法:
library(httr) url <- "http://soundoftext.com/sounds" fd <- list( submit = "save",text = "Banana",lang="es" ) resp<-POST(url,body=fd,encode="form") id <- content(resp)$id download.file(URLencode(paste0("http://soundoftext.com/sounds/",id)),destfile = 'test.mp3')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。