如何从html表单R下载文件

时间:2014-05-30 12:34:01

标签: html r web-services web

当我按ctrl + s并将此页面保存在我的网络浏览器上

http://www.kegg.jp/kegg-bin/show_pathway?zma00944+default%3dred+cpd:C01514+cpd:C05903+cpd:C01265+cpd:C01714

我下载了html表单和一些带有一些png文件的文件夹。我对具有已知模式的png文件感兴趣。

有没有办法从R中以相同的方式下载它们?

我正在尝试:

 download.file("http://www.kegg.jp/kegg-bin/show_pathway?zma00944+default%3dred+cpd:C01514+cpd:C05903+cpd:C01265+cpd:C01714","form.html", mode = "wb")

但我只下载了html表单,而不是相关的png。

由于

1 个答案:

答案 0 :(得分:1)

这将使你成为那里的一部分:

source("http://bioconductor.org/biocLite.R")
biocLite("KEGGREST")
library(png)
library(KEGGREST)
png <- keggGet(c("zma00944","default=red","cpd:C01514","cpd:C05903","cpd:C01265","cpd:C01714"), "image")
t <- tempfile()
writePNG(png, t)
browseURL(t)

不幸的是,它没有做你可能想要的红色突出显示。我不确定是否可以通过REST API完成。

所以可能你只需要下载你的URL,然后为PNG解析它,然后下载:

download.file("http://www.kegg.jp/kegg-bin/show_pathway?zma00944+default%3dred+cpd%3aC01514+cpd%3aC05903+cpd%3aC01265+cpd%3aC01714", "form.html")
lines <- readLines("form.html")
imgUrl <- lines[grep('img src="/', lines)]
url <- paste0("http://www.kegg.jp/", strsplit(imgUrl, '"')[[1]][2])
download.file(url, "file.png")
browseURL("file.png")