加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

r – 下载mp3文件

发布时间:2020-12-16 22:47:52 所属栏目:百科 来源:网络整理
导读:我想使用R的网站.网站是 http://soundoftext.com/,我可以下载WAV.具有来自给定文本和语言(语音)的音频的文件. 在WAV中下载语音有两个步骤: 1)插入文本和选择语言.并提交 2)在新窗口中,单击“保存”并选择文件夹. 到现在为止,我可以获取xml树,将其转换为列表
我想使用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

我遵循this方法,但“标签”出错.

更新:我只是尝试使用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包的有趣解决方法:

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')

基本上当它向服务器发送POST请求时,如果我们只是在下载文件时获取该ID,则会返回一个ID.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读